home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 140 / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan).7z / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan) (Track 1).bin / tools / xpicw / xpicw110.lzh / Source / SYS_FPIC.has < prev    next >
Encoding:
Text File  |  1997-04-10  |  62.5 KB  |  2,681 lines

  1. *///////*///////*///////*///////*///////*///////*///////*///////
  2. *
  3. *    SYS_FPIC.HAS v1.5    BY 鳳 幽玄 1995
  4. *
  5. **///////*///////*///////*///////*///////*///////*///////*///////
  6. *
  7. *    v1.1
  8. *    ・要らない処理をいくつか無くした。
  9. *    ・エラーコードが不適切だった部分を直した。
  10. *    ・ソースを多少は見やすくした。
  11. *    ・コメントの嘘の数を軽減した。
  12. *    ・微妙に高速化。
  13. *
  14. *    v1.2
  15. *    ・緑の稲妻が走るようになり、65536色モードに完全対応。
  16. *    ・微妙に低速化。
  17. *
  18. *    v1.3
  19. *    ・v1.1程度まで速度を盛りかえした。
  20. *    ・サイズを小さくした。
  21. *
  22. *    v1.4
  23. *    ・v1.3で最後まで塗れなくなる場合があるエンバグをしていたのを直した。
  24. *    ・さらに5%くらい高速化。
  25. *
  26. *    v1.5
  27. *    ・多少高速化
  28. *    ・_Fpic_keepで保存してないレジスタがあった。
  29. *
  30. *    v1.5+0.01 (by Mitsuky)
  31. *    ・_Fpic_keep のエラーコードを拡張(エラーコード -4 を新設)。
  32. *    ・コメントスキップのバグを修正。
  33. *
  34. *///////*///////*///////*///////*///////*///////*///////*///////
  35. *    注意:
  36. *
  37. *    ・HAS V3.0 以上でアセンブルしてください。
  38. *
  39. *    ・_Fpic_disp:展開先がグラフィックRAMなどの場合は、
  40. *     スーパーバイザ・モードにしてからコールしてください。
  41. *     また、画面モードも自前で設定してください。
  42. *
  43. *    ・_Fpic_disp は、スタックワーク1Kbyte強 使用します。
  44. *
  45. *///////*///////*///////*///////*///////*///////*///////*///////
  46.  
  47.         include    iocscall.mac
  48.         include    doscall.mac
  49.         include    sys_fpic.mac
  50.  
  51.         .xdef    _Fpic_load
  52.         .xdef    _Fpic_keep
  53.         .xdef    _Fpic_disp
  54.         .xdef    _Fpic_free
  55.         .xdef    _Fpic_set_buf
  56.  
  57.         .text
  58.  
  59. *///////*///////*///////*///////*///////*///////*///////
  60. *    一括処理する
  61. *///////*///////*///////*///////*///////*///////*///////
  62. *    int Fpic_load(FileNamePtr,x,y)
  63. *    ret:d0.l =  0 普通に終了
  64. *           -1 読めなかった
  65. *           -2 未対応データ
  66. *           -3 メモリ不足
  67. *///////*///////*///////*///////*///////*///////*///////
  68. _Fpic_load:    movem.l    d1-d2/a0,-(sp)
  69.  
  70.         movea.l    4*4(sp),a0            *a0.l = File name
  71.         move.l    4*5(sp),d1            *d1.l = X
  72.         move.l    4*6(sp),d2            *d2.l = Y
  73.  
  74.         pea    (a0)                *┐メモリに読み込む
  75.         bsr    _Fpic_keep            *│
  76.         addq.w    #4,sp                *│
  77.         tst.l    d0                *│
  78.         bmi    9f                *│
  79.         movea.l    d0,a0                *┘
  80.  
  81.         move.l    d2,-(sp)            *┐読み込んだのを表示
  82.         move.l    d1,-(sp)            *│
  83.         pea    (a0)                *│
  84.         bsr    _Fpic_disp            *│
  85.         lea    12(sp),sp            *┘
  86.  
  87.         pea    (a0)                *┐メモリ解放
  88.         bsr    _Fpic_free            *│
  89.         addq.w    #4,sp                *┘
  90.  
  91.         moveq.l    #0,d0                * 無事おわり
  92.  
  93. 9:        movem.l    (sp)+,d1-d2/a0
  94.         rts
  95.  
  96. *///////*///////*///////*///////*///////*///////*///////
  97. *    メモリを確保してデータを読み込む
  98. *///////*///////*///////*///////*///////*///////*///////
  99. *    int Fpic_keep(FileNamePtr)
  100. *    ret:d0.l = BufPtr
  101. *           -1 読めなかった
  102. *           -2 未対応データ(.PIC 形式ではない)
  103. *           -3 メモリ不足
  104. *           -4 未対応データ(32768/65536 色 .PIC でない)
  105. *///////*///////*///////*///////*///////*///////*///////
  106.  
  107. pmd_tbl:    dc.b    $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
  108.         dc.b    $ff,$ff,$ff,$ff,$ff,$ff,$02,$03
  109.  
  110. _Fpic_keep:    movem.l    d1-d7/a0-a6,-(sp)
  111.  
  112.         move.l    4*15(sp),a0            * a0.l = ファイル名へのポインタ
  113.  
  114.         clr.w    -(sp)                *┐ファイルオープン
  115.         pea    (a0)                *│
  116.         DOS    _OPEN                *│
  117.         addq.l    #6,sp                *│
  118.         move.l    d0,d1                *│
  119.         bmi    9f                *┘
  120.  
  121.         move.w    d1,-(sp)            *┐ちゃんと'PIC'データですか?
  122.         DOS    _FGETC                *│
  123.         cmpi.b    #'P',d0                *│
  124.         bne    8f                *│
  125.         DOS    _FGETC                *│
  126.         cmpi.b    #'I',d0                *│
  127.         bne    8f                *│
  128.         DOS    _FGETC                *│
  129.         cmpi.b    #'C',d0                *│
  130.         bne    8f                *┘
  131.  
  132.         moveq.l    #0,d6                *d6.l = X<<16 + Y
  133.         move.l    #$00_00_08_00,d7        *d7.l = flag1_flag2_SCR_PICT
  134.         bsr    comment_chk            *
  135.  
  136. @@:        DOS    _FGETC                *┐0飛ばし
  137.         tst.b    d0                *│
  138.         bne    @b                *┘
  139.  
  140.         DOS    _FGETC                *┐$0000?
  141.         tst.b    d0                *│
  142.         bne    8f                *│
  143.         DOS    _FGETC                *│
  144.         tst.b    d0                *│
  145.         bne    8f                *┘
  146.  
  147.         DOS    _FGETC                *┐使用色bit数
  148.         move.b    d0,d3                *│
  149.         lsl.w    #8,d3                *│
  150.         DOS    _FGETC                *│
  151.         move.b    d0,d3                *┘
  152.         subq.w    #1,d3                *┐使用色bit数/$0001~$0010
  153.         cmpi.w    #16,d3                *│    を
  154.         bcc    6f                *│PIC・TYPEに変換
  155.         move.b    pmd_tbl(pc,d3.w),d3        *│
  156.         bmi    6f                *│    02:32768色
  157.         or.w    d3,d7                *┘    03:65536色
  158.  
  159.         moveq.l    #0,d5                *┐サイズ
  160.         moveq.l    #4-1,d3                *│
  161. 1:        lsl.l    #8,d5                *│
  162.         DOS    _FGETC                *│
  163.         move.b    d0,d5                *│
  164.         dbra    d3,1b                *┘d5.l = sizeX<<16 + sizeY
  165.  
  166.         move.l    d0,d3                *┐
  167.         swap    d3                *│横size check
  168.         cmpi.w    #512,d3                *│
  169.         bhi    8f                *┘
  170.         cmpi.w    #512,d5                *┐縦size check
  171.         bhi    8f                *┘
  172.  
  173.         move.w    #1,-(sp)            *┐現在のポインタ位置
  174.         clr.l    -(sp)                *│
  175.         move.w    d1,-(sp)            *│
  176.         DOS    _SEEK                *│
  177.         add.w    #8,sp                *│
  178.         move.l    d0,d2                *┘
  179.  
  180.         move.w    #2,-(sp)            *┐全サイズを調べる
  181.         clr.l    -(sp)                *│
  182.         move.w    d1,-(sp)            *│
  183.         DOS    _SEEK                *│
  184.         add.w    #8,sp                *│
  185.         move.l    d0,d3                *┘
  186.         sub.l    d2,d3                *d3.l = 圧縮データ部のサイズ
  187.  
  188.         clr.w    -(sp)                *┐ポインタを頭に戻す
  189.         move.l    d2,-(sp)            *│
  190.         move.w    d1,-(sp)            *│
  191.         DOS    _SEEK                *│
  192.         add.w    #8,sp                *┘
  193.  
  194.         move.l    #fpw_size,d2            *┐ヘッダサイズ
  195.         addq.l    #4,d2                *┘ヘッダサイズ+念のための4バイト
  196.  
  197.         move.l    d3,-(sp)            *┐メモリ確保
  198.         add.l    d2,(sp)                *│ヘッダ分多めに取る
  199.         DOS    _MALLOC                *│
  200.         addq.w    #4,sp                *│
  201.         move.l    d0,a0                *│a0.l = データのアドレス
  202.         tst.l    d0                *│
  203.         bmi    7f                *┘
  204.  
  205.         move.l    d3,-(sp)            *┐圧縮データ部読み込み
  206.         pea    fpw_size(a0)            *│
  207.         move.w    d1,-(sp)            *│
  208.         DOS    _READ                *│
  209.         lea    10(sp),sp            *┘
  210.  
  211. *        add.l    d3,d2                *┐念のために取った4バイトをクリア
  212. *        clr.l    -4(a0,d2.l)            *┘
  213.  
  214.         move.l    d7,fpw_FLAG1(a0)        *
  215.         move.l    d6,fpw_X(a0)            *
  216.         move.l    d5,fpw_H(a0)            *
  217.         clr.l    fpw_rsv(a0)            *
  218.  
  219.         DOS    _CLOSE                *┐ファイルクローズ
  220.         addq.w    #2,sp                *┘
  221.  
  222.         move.l    a0,d0                *普通に終了
  223.  
  224. @@:        movem.l    (sp)+,d1-d7/a0-a6
  225.         rts
  226.  
  227. 9:        moveq.l    #-1,d0                *┐-1 = 読み込みエラー
  228.         bra    @b                *│
  229.                             *│
  230. 8:        DOS    _CLOSE                *│
  231.         addq.w    #2,sp                *│
  232.         moveq.l    #-2,d0                *│-2 = 対応してないデータ。
  233.         bra    @b                *│(.PIC ではない)
  234.                             *│
  235. 7:        DOS    _CLOSE                *│
  236.         addq.w    #2,sp                *│
  237.         moveq.l    #-3,d0                *│-3 = メモリ不足
  238.         bra    @b                *│
  239.                             *│
  240. 6:        DOS    _CLOSE                *│
  241.         addq.w    #2,sp                *│
  242.         moveq.l    #-4,d0                *│-4 = 対応してないデータ。
  243.         bra    @b                *┘(32768/65536 色 .PIC でない)
  244.  
  245. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  246. *    MFGED 拡張フォーマット対応のコメント飛ばし
  247. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  248. comment_chk:    move.w    d1,-(sp)            *File Hundle
  249.  
  250.         move.l    #'/MM/',d2            *┐
  251.         moveq.l    #4-1,d3                *│
  252. 1:        rol.l    #8,d2                *│
  253.         DOS    _FGETC                *│/MM/ check
  254.         cmpi.b    #$1a,d0                *│
  255.         beq    9f                *│
  256.         cmp.b    d2,d0                *│
  257.         bne    8f                *│
  258.         dbra    d3,1b                *┘
  259.  
  260. chk_sw:        DOS    _FGETC                *┐
  261.         cmpi.b    #'M',d0                *│頭check
  262.         beq    MM_M                *│
  263.         cmpi.b    #'X',d0                *│
  264.         beq    MM_X                *│
  265.         cmpi.b    #':',d0                *│
  266.         beq    8f                *┘
  267.  
  268. skip_sl:    DOS    _FGETC                *┐スイッチスキップ&NEXT
  269.         cmpi.b    #'/',d0                *│
  270. *        bne    8b                *│by Mitsuky
  271.         bne    skip_sl                *│
  272.         bra    chk_sw                *┘
  273.  
  274. 8:        DOS    _FGETC                *┐通常のコメントすきっぷ
  275.         cmpi.b    #$1a,d0                *│
  276.         bne    8b                *┘
  277.  
  278. 9:        addq.w    #2,sp
  279.         rts
  280.  
  281. MM_M:        DOS    _FGETC
  282.         cmpi.b    #'K',d0
  283.         beq    MM_MK
  284.         cmpi.b    #'Y',d0
  285.         beq    MM_MY
  286.         cmpi.b    #'S',d0
  287.         beq    MM_MS
  288.         cmpi.b    #'H',d0
  289.         bne    skip_sl
  290.         cmpi.b    #'Y',d0
  291.         beq    MM_MY
  292.  
  293. MM_MHY:        bset.l    #24+fpf_MHY,d7
  294.         bra    skip_sl
  295.  
  296. MM_MK:        bset.l    #24+fpf_MK,d7
  297.         bra    skip_sl
  298.  
  299. MM_MY:        bset.l    #24+fpf_MY,d7
  300.         bra    skip_sl
  301.  
  302. MM_MS:        bset.l    #24+fpf_SCR,d7
  303.         DOS    _FGETC
  304.         andi.w    #$00ff,d0
  305.         cmpi.b    #'A',d0
  306.         bcs    1f
  307.         subi.b    #'A'-'0',d0
  308. 1:        subi.b    #'0',d0
  309.         lsl.w    #8,d0
  310.         or.w    d0,d7
  311.         bra    skip_sl
  312.  
  313. MM_X:        DOS    _FGETC
  314.         cmpi.b    #'Y',d0
  315.         beq    MM_XY
  316.         cmpi.b    #'S',d0
  317.         beq    MM_XS
  318.         cmpi.b    #'F',d0
  319.         beq    skip_sl
  320.  
  321. MM_XF:        DOS    _FGETC
  322.         cmpi.b    #'L',d0
  323.         bne    skip_sl
  324.         bset.l    #24+fpf_RS,d7
  325.         bra    skip_sl
  326.  
  327. MM_XS:        DOS    _FGETC
  328.         cmpi.b    #'S',d0
  329.         bne    skip_sl
  330.         bset.l    #24+fpf_SQ,d7
  331.         bra    skip_sl
  332.  
  333. MM_XY:        bset.l    #24+fpf_XY,d7
  334.         moveq.l    #0,d3
  335.         moveq.l    #0,d6
  336.  
  337.         moveq.l    #4-1,d2
  338. 1:        mulu    #10,d6
  339.         DOS    _FGETC
  340.         andi.w    #$00ff,d0
  341.         subi.b    #'0',d0
  342.         add.w    d0,d6
  343.         dbra    d2,1b
  344.         swap    d6
  345.  
  346.         moveq.l    #4-1,d2
  347. 1:        mulu    #10,d3
  348.         DOS    _FGETC
  349.         andi.w    #$00ff,d0
  350.         subi.b    #'0',d0
  351.         add.w    d0,d3
  352.         dbra    d2,1b
  353.         move.w    d3,d6
  354.         bra    skip_sl
  355.  
  356. *///////*///////*///////*///////*///////*///////*///////
  357. *    データを破棄する
  358. *///////*///////*///////*///////*///////*///////*///////
  359. *    int Fpic_free(BufPtr)
  360. *    ret:d0.l =  0 正常終了
  361. *           -1 エラー
  362. *///////*///////*///////*///////*///////*///////*///////
  363. *_Fpic_free:    move.l    4*1(sp),-(sp)            *┐
  364. *        pea    (a4)                *│解放するだけ
  365. *        DOS    _MFREE                *│
  366. *        addq.w    #8,sp                *│
  367.  
  368. _Fpic_free:    move.l    4*1(sp),-(sp)            *┐by Mitsuky
  369.         DOS    _MFREE                *│解放するだけ
  370.         addq.w    #4,sp                *│
  371.         tst.l    d0                *│
  372.         bmi    8f                *┘
  373. 9:        rts
  374. 8:        moveq.l    #-1,d0                *┐まあ、念のためのエラー
  375.         bra    9b                *┘
  376.  
  377. *///////*///////*///////*///////*///////*///////*///////
  378. *    展開先アドレスの指定
  379. *///////*///////*///////*///////*///////*///////*///////
  380. *    void Fpic_free(BufPtr)
  381. *///////*///////*///////*///////*///////*///////*///////
  382. _Fpic_set_buf:    move.l    a0,-(sp)            *┐設定するだけ
  383.         lea    buf_address(pc),a0        *│
  384.         move.l    8(sp),(a0)            *│
  385.         movea.l    (sp)+,a0            *┘
  386.         rts
  387.  
  388. *///////*///////*///////*///////*///////*///////*///////
  389. *    表示する
  390. *///////*///////*///////*///////*///////*///////*///////
  391. *    int Fpic_disp(BufPtr,x,y)
  392. *    ret:d0.l =  0 正常終了
  393. *           -1 エラー(今のところありえない)
  394. *///////*///////*///////*///////*///////*///////*///////
  395.         .offset    0
  396. PR_BUF:        ds.b    1024    *1024    キャッシュバッファ
  397. PIC_TYP:    ds.w    1    *2    PICの色数モード#
  398. PSIZE_X:    ds.w    1    *2    横サイズ
  399. PSIZE_Y:    ds.w    1    *2    縦サイズ
  400. DOWNOFS:    ds.w    1    *2    1段下へ下がる時のアドレス増加分
  401. VRAMADR:    ds.l    1    *4    左上アドレス
  402. WORK_SZ:    ds.l    1    *    <a6>
  403.         ds.l    1    *    <return adr.>
  404. DATA_BUF:    ds.l    1    *    メモリ上のPICデータのポインタ
  405.         ds.w    1    *
  406. LOC_X:        ds.w    1    *    表示座標X
  407.         ds.w    1    *
  408. LOC_Y:        ds.w    1    *    表示座標Y
  409.         .text
  410.  
  411. buf_address:    dc.l    $c00000
  412. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  413. _Fpic_disp:    link    a6,#-WORK_SZ
  414.         movem.l    d1-d7/a0-a6,-(sp)
  415.         lea    -WORK_SZ(a6),a6        *(変なことをやってるようだけど許して)
  416.  
  417.         movea.l    DATA_BUF(a6),a4            *DATA ADDRESS
  418.  
  419.         clr.w    PIC_TYP(a6)            *┐PIC・TYPE
  420.         move.b    fpw_PICT(a4),PIC_TYP+1(a6)    *┘
  421.         move.w    fpw_H(a4),PSIZE_X(a6)        *SIZE_X
  422.         move.w    fpw_V(a4),PSIZE_Y(a6)        *SIZE_Y
  423.         lea    fpw_size(a4),a4            *
  424.  
  425.         move.w    LOC_X(a6),d0            *┐左上アドレスを求める
  426.         add.w    d0,d0                *│
  427.         move.w    LOC_Y(a6),d1            *│
  428.         mulu    #1024,d1            *│
  429.         add.w    d0,d1                *│
  430.         add.l    buf_address(pc),d1        *│
  431.         move.l    d1,VRAMADR(a6)            *┘
  432.  
  433.         move.w    #512,d0                *┐下段左への増加分を求める
  434.         sub.w    PSIZE_X(a6),d0            *│
  435.         add.w    d0,d0                *│
  436.         move.w    d0,DOWNOFS(a6)            *┘
  437.  
  438.         bsr    screen_init            *
  439.         bsr    cache_init            *
  440.         bsr    PicX                *
  441.  
  442.         moveq.l    #0,d0                *
  443.         movem.l    (sp)+,d1-d7/a0-a6
  444.         unlk    a6
  445.         rts
  446.  
  447. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  448. *    展開バッファをクリア
  449. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  450. screen_init:    movem.l    d0-d7/a0-a4,-(sp)
  451.  
  452.         move.l    VRAMADR(a6),a1            *┐
  453.         move.w    PSIZE_Y(a6),d0            *│
  454.         subq.w    #1,d0                *│
  455.         mulu    #1024,d0            *│
  456.         move.w    PSIZE_X(a6),d1            *│
  457.         add.w    d1,a1                *│
  458.         add.w    d1,d0                *│
  459.         add.l    d0,a1                *┘a1.l = 描き始めアドレス
  460.  
  461.         move.w    PSIZE_X(a6),d0            *┐
  462.         subq.w    #1,d0                *│*左端の分を引く
  463.         move.w    d0,d1                *│
  464.         andi.w    #15,d1                *│
  465.         neg.w    d1                *│
  466.         add.w    #15,d1                *│
  467.         add.w    d1,d1                *│
  468.         lea    jp_1(pc,d1.w),a2        *│a2.l = ジャンプ先
  469.         lsr.w    #4,d0                *│
  470.         neg.w    d0                *│
  471.         add.w    #32,d0                *│
  472.         add.w    d0,d0                *│
  473.         add.w    d0,d0                *│
  474.         lea    jp_16(pc,d0.w),a3        *┘a3.l = ジャンプ先
  475.  
  476.         move.w    DOWNOFS(a6),d0            * 書き込みデータ左端
  477.         neg.w    d0                *
  478.         moveq.l    #$0000_0000,d1            *┐書き込みデータ
  479.         move.l    d1,d2                *│
  480.         move.l    d1,d3                *│
  481.         move.l    d1,d4                *│
  482.         move.l    d1,d5                *│
  483.         move.l    d1,d6                *│
  484.         move.l    d1,a0                *│
  485.         move.l    d1,a4                *┘
  486.  
  487.         move.w    PSIZE_Y(a6),d7            *┐縦繰り返し数
  488.         subq.w    #1,d7                *┘
  489.  
  490. @@:        jmp    (a2)                *┐塗りつぶし
  491. jp_1:        .rept    15                *│
  492.         move.w    d1,-(a1)            *│
  493.         .endm                    *│
  494.         jmp    (a3)                *│
  495. jp_16:        .rept    32                *│
  496.         movem.l    d1-d6/a0/a4,-(a1)        *│
  497.         .endm                    *│
  498.         move.w    d0,-(a1)            *│
  499.         adda.w    d0,a1                *│
  500.         dbra    d7,@b                *┘
  501.  
  502.         movem.l    (sp)+,d0-d7/a0-a4
  503.         rts
  504.  
  505. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  506. *    キャッシュ用ワーク初期化
  507. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  508. cache_init:    movem.l    d0-d3/a0,-(sp)
  509.  
  510.         lea    PR_BUF(a6),a0
  511.         moveq.l    #8,d1
  512.         move.w    #1016,d2
  513.         move.w    #1023,d3
  514.         moveq.l    #128-1,d0
  515.  
  516. 1:        clr.w    (a0)+                *
  517.  
  518.         move.w    d1,(a0)+            *next
  519.         addq.w    #8,d1                *
  520.         and.w    d3,d1                *
  521.  
  522.         move.w    d2,(a0)+            *before
  523.         addq.w    #8,d2                *
  524.         and.w    d3,d2                *
  525.  
  526.         addq.w    #2,a0                *dummy
  527.  
  528.         dbra    d0,1b
  529.  
  530.         movem.l    (sp)+,d0-d3/a0
  531.         rts
  532.  
  533. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  534. *    PIC展開
  535. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  536. B_TEST        .macro                    *┐マクロ:1ビットテスト
  537.         .local    BT_00                *│
  538.         dbra    d7,BT_00            *│
  539.         moveq.l    #15,d7                *│
  540.         swap    d6                *一応必要な場合がある
  541.         move.w    (a4)+,d6            *│
  542. BT_00:        btst.l    d7,d6                *│
  543.         .endm                    *┘
  544.  
  545. B_READ        .macro    bitn,reg            *┐マクロ:複数ビット読み込み
  546.         .local    BR_00                *│
  547.         sub.w    bitn,d7                *│
  548.         bcc.s    BR_00                *│
  549.         add.w    a1,d7                *│
  550.         swap    d6                *│
  551.         move.w    (a4)+,d6            *│
  552. BR_00:        move.l    d6,reg                *│
  553.         lsr.l    d7,reg                *│
  554.         .endm                    *┘
  555.  
  556. B_FB        .macro    bitn                *┐マクロ:読まなかったことにする
  557.         addq.w    #bitn,d7            *│
  558.         .endm                    *┘
  559.  
  560. SET_NUM        .macro    num                *┐マクロ:数値設定(意味不明)
  561.         sub.w    #num-1,d4            *│
  562.         bcc    PicX_04-(num-1)*6        *│
  563.         moveq.l    #num,d3                *│
  564.         add.w    d3,d4                *│
  565.         bra    PicX_10                *┘
  566.         .endm
  567.  
  568. SET_NUMd    .macro    num                *┐マクロ:数値設定(意味不明)
  569.         dbra    d4,PicX_04-6            *│
  570.         moveq.l    #2,d3                *│
  571.         add.w    d3,d4                *│
  572.         bra    PicX_10                *┘
  573.         .endm
  574.  
  575. SET_NM2        .macro                    *┐マクロ:数値設定(笑)
  576.         addq.w    #1,d4                *│
  577.         sub.w    d3,d4                *│
  578.         bcc    PicX_05                *│
  579.         add.w    d3,d4                *│
  580.         bra    PicX_10                *┘
  581.         .endm
  582.  
  583. SET_NM3        .macro                    *┐マクロ:数値設定(^_^;
  584.         addq.w    #1,d4                *│
  585.         sub.l    d3,d4                *│
  586.         bcc    PicX_05                *│
  587.         add.l    d3,d4                *│
  588.         bra    PicX_10                *┘
  589.         .endm
  590.  
  591. SET_NM3_JF    .macro                    *┐マクロ:数値設定(^_^;
  592.         addq.w    #1,d4                *│
  593.         sub.l    d3,d4                *│
  594.         bcc    PicX_05                *┘
  595.         add.l    d3,d4                *
  596.         .endm
  597.  
  598. UpC        =    -1024+2
  599. UpL1        =    -1024-2+2
  600. UpR1        =    -1024+2+2
  601. UpL2        =    -1024-4+2
  602. UpR2        =    -1024+4+2
  603.  
  604. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  605. PJ:        dc.w    PALsel_16-PJ            *┐色数モード毎のジャンプ先オフセット
  606.         dc.w    PALsel_256-PJ            *│
  607.         dc.w    PALsel32768-PJ            *│
  608.         dc.w    PALsel65536-PJ            *┘
  609.  
  610. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  611. PicX:        move.w    PIC_TYP(a6),d0            *┐
  612.         add.w    d0,d0                *│a5 = パレット取得の処理アドレス
  613.         move.w    PJ(pc,d0.w),d0            *│
  614.         lea    PJ(pc,d0.w),a5            *┘
  615.  
  616.         movea.l    VRAMADR(a6),a0            * a0.l = VRAMポインタ
  617.  
  618.         suba.l    a3,a3                * a3.l = キャシュ用
  619.  
  620.         moveq.l    #0,d7                * d7.l = ビットカウンタ
  621.  
  622.         move.l    #255,d2                * d2.l = #255の代わり
  623.  
  624.         moveq.l    #0,d4                *┐
  625.         move.w    PSIZE_X(a6),d4            *│d4.l = 横サイズカウンタ
  626.         subq.w    #1,d4                *┘
  627.  
  628.         lea    16.w,a1                * a1.l = #16の代わり
  629.  
  630.         move.w    #UpC,d5                *
  631.  
  632. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  633. *    次の変化点までの距離を求める。
  634. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  635. Wyle:        B_TEST                    *<x>
  636.         bne.s    W_1x                *
  637.  
  638. W_0x:        B_TEST                    *<0x>
  639.         bne.s    W_01                *
  640.  
  641. W_00:        jmp    (a5)                *<00>    =1
  642.  
  643. W_01:        SET_NUMd                *<01>    =2
  644.  
  645. W_1x:        B_TEST                    *<1x>
  646.         bne.s    W_11                *
  647.  
  648. W_10xx:        B_TEST                    *<10xx>
  649.         bne.s    W_101x                *
  650.  
  651.         B_TEST                    *<100x>
  652.         bne.s    W_1001                *
  653.         SET_NUM    3                *<1000>    =3
  654. W_1001:        SET_NUM    4                *<1001>    =4
  655.  
  656. W_101x:        B_TEST                    *<101x>
  657.         bne.s    W_1011                *
  658.         SET_NUM    5                *<1010>    =5
  659. W_1011:        SET_NUM    6                *<1011>    =6
  660.  
  661. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*<11_xxxxxxxx>
  662. W_11:        B_READ    #8,d0                *┐
  663.         and.w    d2,d0                *│ビット状態に応じてジャンプさせる
  664.         add.w    d0,d0                *│
  665.         move.w    WJ(pc,d0.w),d0            *│
  666.         jmp    WJ(pc,d0.w)            *┘
  667.  
  668. WJ:        dc.w    w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ
  669.         dc.w    w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ
  670.         dc.w    w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ
  671.         dc.w    w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ,w0000xxxx-WJ
  672.         dc.w    w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ
  673.         dc.w    w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ
  674.         dc.w    w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ
  675.         dc.w    w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ,w0001xxxx-WJ
  676.         dc.w    w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ
  677.         dc.w    w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ
  678.         dc.w    w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ
  679.         dc.w    w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ,w0010xxxx-WJ
  680.         dc.w    w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ
  681.         dc.w    w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ
  682.         dc.w    w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ
  683.         dc.w    w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ,w0011xxxx-WJ
  684.         dc.w    w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ
  685.         dc.w    w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ
  686.         dc.w    w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ
  687.         dc.w    w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ,w0100xxxx-WJ
  688.         dc.w    w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ
  689.         dc.w    w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ
  690.         dc.w    w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ
  691.         dc.w    w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ,w0101xxxx-WJ
  692.         dc.w    w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ
  693.         dc.w    w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ
  694.         dc.w    w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ
  695.         dc.w    w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ,w0110xxxx-WJ
  696.         dc.w    w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ
  697.         dc.w    w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ
  698.         dc.w    w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ
  699.         dc.w    w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ,w0111xxxx-WJ
  700.         dc.w    w100000xx-WJ,w100000xx-WJ,w100000xx-WJ,w100000xx-WJ
  701.         dc.w    w100001xx-WJ,w100001xx-WJ,w100001xx-WJ,w100001xx-WJ
  702.         dc.w    w100010xx-WJ,w100010xx-WJ,w100010xx-WJ,w100010xx-WJ
  703.         dc.w    w100011xx-WJ,w100011xx-WJ,w100011xx-WJ,w100011xx-WJ
  704.         dc.w    w100100xx-WJ,w100100xx-WJ,w100100xx-WJ,w100100xx-WJ
  705.         dc.w    w100101xx-WJ,w100101xx-WJ,w100101xx-WJ,w100101xx-WJ
  706.         dc.w    w100110xx-WJ,w100110xx-WJ,w100110xx-WJ,w100110xx-WJ
  707.         dc.w    w100111xx-WJ,w100111xx-WJ,w100111xx-WJ,w100111xx-WJ
  708.         dc.w    w101000xx-WJ,w101000xx-WJ,w101000xx-WJ,w101000xx-WJ
  709.         dc.w    w101001xx-WJ,w101001xx-WJ,w101001xx-WJ,w101001xx-WJ
  710.         dc.w    w101010xx-WJ,w101010xx-WJ,w101010xx-WJ,w101010xx-WJ
  711.         dc.w    w101011xx-WJ,w101011xx-WJ,w101011xx-WJ,w101011xx-WJ
  712.         dc.w    w101100xx-WJ,w101100xx-WJ,w101100xx-WJ,w101100xx-WJ
  713.         dc.w    w101101xx-WJ,w101101xx-WJ,w101101xx-WJ,w101101xx-WJ
  714.         dc.w    w101110xx-WJ,w101110xx-WJ,w101110xx-WJ,w101110xx-WJ
  715.         dc.w    w101111xx-WJ,w101111xx-WJ,w101111xx-WJ,w101111xx-WJ
  716.         dc.w    w11000000-WJ,w11000001-WJ,w11000010-WJ,w11000011-WJ
  717.         dc.w    w11000100-WJ,w11000101-WJ,w11000110-WJ,w11000111-WJ
  718.         dc.w    w11001000-WJ,w11001001-WJ,w11001010-WJ,w11001011-WJ
  719.         dc.w    w11001100-WJ,w11001101-WJ,w11001110-WJ,w11001111-WJ
  720.         dc.w    w11010000-WJ,w11010001-WJ,w11010010-WJ,w11010011-WJ
  721.         dc.w    w11010100-WJ,w11010101-WJ,w11010110-WJ,w11010111-WJ
  722.         dc.w    w11011000-WJ,w11011001-WJ,w11011010-WJ,w11011011-WJ
  723.         dc.w    w11011100-WJ,w11011101-WJ,w11011110-WJ,w11011111-WJ
  724.         dc.w    w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ
  725.         dc.w    w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ
  726.         dc.w    w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ
  727.         dc.w    w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ,w1110oooo-WJ
  728.         dc.w    w11110ooo-WJ,w11110ooo-WJ,w11110ooo-WJ,w11110ooo-WJ
  729.         dc.w    w11110ooo-WJ,w11110ooo-WJ,w11110ooo-WJ,w11110ooo-WJ
  730.         dc.w    w111110oo-WJ,w111110oo-WJ,w111110oo-WJ,w111110oo-WJ
  731.         dc.w    w1111110o-WJ,w1111110o-WJ,w11111110-WJ,w11111111-WJ
  732.  
  733. w0000xxxx:    B_FB    4
  734.         SET_NUM    7
  735. w0001xxxx:    B_FB    4
  736.         SET_NUM    8
  737. w0010xxxx:    B_FB    4
  738.         SET_NUM    9
  739. w0011xxxx:    B_FB    4
  740.         SET_NUM    10
  741. w0100xxxx:    B_FB    4
  742.         SET_NUM    11
  743. w0101xxxx:    B_FB    4
  744.         SET_NUM    12
  745. w0110xxxx:    B_FB    4
  746.         SET_NUM    13
  747. w0111xxxx:    B_FB    4
  748.         SET_NUM    14
  749.  
  750. w100000xx:    B_FB    2
  751.         SET_NUM    15
  752. w100001xx:    B_FB    2
  753.         SET_NUM    16
  754. w100010xx:    B_FB    2
  755.         SET_NUM    17
  756. w100011xx:    B_FB    2
  757.         SET_NUM    18
  758. w100100xx:    B_FB    2
  759.         SET_NUM    19
  760. w100101xx:    B_FB    2
  761.         SET_NUM    20
  762. w100110xx:    B_FB    2
  763.         SET_NUM    21
  764. w100111xx:    B_FB    2
  765.         SET_NUM    22
  766. w101000xx:    B_FB    2
  767.         SET_NUM    23
  768. w101001xx:    B_FB    2
  769.         SET_NUM    24
  770. w101010xx:    B_FB    2
  771.         SET_NUM    25
  772. w101011xx:    B_FB    2
  773.         SET_NUM    26
  774. w101100xx:    B_FB    2
  775.         SET_NUM    27
  776. w101101xx:    B_FB    2
  777.         SET_NUM    28
  778. w101110xx:    B_FB    2
  779.         SET_NUM    29
  780. w101111xx:    B_FB    2
  781.         SET_NUM    30
  782.  
  783. w11000000:    SET_NUM    31
  784. w11000001:    SET_NUM    32
  785. w11000010:    SET_NUM    33
  786. w11000011:    SET_NUM    34
  787. w11000100:    SET_NUM    35
  788. w11000101:    SET_NUM    36
  789. w11000110:    SET_NUM    37
  790. w11000111:    SET_NUM    38
  791. w11001000:    SET_NUM    39
  792. w11001001:    SET_NUM    40
  793. w11001010:    SET_NUM    41
  794. w11001011:    SET_NUM    42
  795. w11001100:    SET_NUM    43
  796. w11001101:    SET_NUM    44
  797. w11001110:    SET_NUM    45
  798. w11001111:    SET_NUM    46
  799. w11010000:    SET_NUM    47
  800. w11010001:    SET_NUM    48
  801. w11010010:    SET_NUM    49
  802. w11010011:    SET_NUM    50
  803. w11010100:    SET_NUM    51
  804. w11010101:    SET_NUM    52
  805. w11010110:    SET_NUM    53
  806. w11010111:    SET_NUM    54
  807. w11011000:    SET_NUM    55
  808. w11011001:    SET_NUM    56
  809. w11011010:    SET_NUM    57
  810. w11011011:    SET_NUM    58
  811. w11011100:    SET_NUM    59
  812. w11011101:    SET_NUM    60
  813. w11011110:    SET_NUM    61
  814. w11011111:    SET_NUM    62
  815.  
  816. w1110oooo:    B_READ    #6-4,d0                *┐63~126
  817.         moveq.l    #63,d3                *│
  818.         and.w    d3,d0                *│
  819.         add.w    d0,d3                *│
  820.         SET_NM2                    *┘
  821.  
  822. w11110ooo:    B_READ    #7-3,d0                *┐127~254
  823.         moveq.l    #127,d3                *│
  824.         and.w    d3,d0                *│
  825.         add.w    d0,d3                *│
  826.         SET_NM2                    *┘
  827.  
  828. w111110oo:    B_READ    #8-2,d3                *┐255~510
  829.         and.l    d2,d3                *│
  830.         add.w    d2,d3                *│
  831.         SET_NM2                    *┘
  832.  
  833. w1111110o:    B_READ    #9-1,d0                *┐511~1022
  834.         move.l    #511,d3                *│
  835.         and.w    d3,d0                *│
  836.         add.w    d0,d3                *│
  837.         SET_NM2                    *┘
  838.  
  839. w11111110:    B_READ    #10,d0                *┐1023~2046
  840.         move.l    #1023,d3            *│
  841.         and.w    d3,d0                *│
  842.         add.w    d0,d3                *│
  843.         SET_NM2                    *┘
  844.  
  845. w11111111:    moveq.l    #-1,d0                *┐ビット数カウント
  846. @@:        B_TEST                    *│
  847.         dbeq    d0,@b                *│
  848.         neg.w    d0                *│
  849.         move.l    #%10000000000,d3        *│
  850.         lsl.l    d0,d3                *│
  851.         subq.l    #1,d3                *│
  852.         addi.w    #10,d0                *┘
  853.  
  854.         cmpi.w    #17,d0                *┐何ビット?
  855.         bcs.s    1f                *┘
  856.  
  857.         sub.w    a1,d0                *┐
  858.         B_READ    d0,d1                *│ロングワードで読む
  859.         B_READ    a1,d0                *│
  860.         swap    d1                *│
  861.         move.w    d0,d1                *│
  862.         and.l    d3,d1                *│
  863.         add.l    d1,d3                *│
  864.         SET_NM3                    *┘
  865.  
  866. 1:        B_READ    d0,d0                *┐
  867.         and.l    d3,d0                *│ワードで読む
  868.         add.l    d0,d3                *│
  869.         SET_NM3_JF                *┘
  870.  
  871. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  872. *        折り返し付き横塗り
  873. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  874. PicX_10:    sub.l    d4,d3                *
  875.  
  876.         neg.w    d4                *┐
  877.         addi.w    #512,d4                *│右端まで塗る
  878.         add.w    d4,d4    *x2            *│
  879.         move.w    d4,d0    *            *│
  880.         add.w    d4,d4    *x4            *│
  881.         add.w    d0,d4    *x6            *│
  882.         jmp    PicX_11(pc,d4.w)        *┘
  883.  
  884. PicX_11:    .rept    512                *┐
  885.         move.w    (a0),d0                *│2(8)
  886.         move.w    -2(a0,d0.w),(a0)+        *│4(18)
  887.         .endm                    *┘
  888.  
  889.         adda.w    DOWNOFS(a6),a0            *┐1段下がる
  890.         moveq.l    #0,d4                *│
  891.         move.w    PSIZE_X(a6),d4            *│
  892.         subq.w    #1,PSIZE_Y(a6)            *│
  893.         beq    PicX_ex                *│
  894.         cmp.l    d3,d4                *│
  895.         bcs    PicX_10                *│
  896.         sub.l    d3,d4                *┘
  897.  
  898. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  899. PicX_05:    add.w    d3,d3                *┐(d3-1)ドットを塗る
  900.         move.w    JPT_B(pc,d3.w),d3        *│
  901.         jmp    JPT_B(pc,d3.w)            *┘
  902.  
  903. CNT        =    512                *┐ジャンプテーブル
  904. JPT_B:        .rept    513                *│
  905.         dc.w    PicX_02-JPT_B+CNT*6        *│
  906. CNT        =    CNT-1                *│
  907.         .endm                    *┘
  908.  
  909. PicX_02:    .rept    511                *┐
  910.         move.w    (a0),d0                *│2(8)
  911.         move.w    -2(a0,d0.w),(a0)+        *│4(18)
  912.         .endm                    *┘
  913.  
  914. PicX_04:    jmp    (a5)                *パレット取得へ
  915.  
  916. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  917. *        パレット取得
  918. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  919. PALsel_16:
  920.  
  921. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  922. PALsel_256:
  923.  
  924. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  925. PALsel65536:    B_READ    a1,d1                *16ビット読み込む
  926.  
  927.         move.w    d1,d0                *頭が1なら、テーブル番号
  928.         bmi.s    READfromTBL            *頭が0なら、色コード
  929.  
  930.         add.w    d1,d1                *新たに1ビット読み込んで
  931.         B_TEST                    *65536色データにする
  932.         beq.s    @f                *
  933.         addq.w    #1,d1                *
  934.  
  935. @@:        move.w    PR_BUF+2(a6,a3.w),a3        *┐テーブルにセットする
  936.         move.w    d1,PR_BUF(a6,a3.w)        *│
  937.         bra    chain                *┘
  938.  
  939. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  940. PALsel32768:    B_READ    a1,d1                *16ビット読み込む
  941.  
  942.         move.w    d1,d0                *頭が1なら、テーブル番号
  943.         bpl.s    SETtoTBL            *頭が0なら、色コード
  944.  
  945. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  946. READfromTBL:    lsr.w    #5,d1                *┐
  947.         andi.w    #127*8,d1            *┘d1.w = テーブル番号x8
  948.  
  949.         cmp.w    a3,d1                *
  950.         beq.s    @f                *
  951.  
  952.         move.l    PR_BUF+2(a6,d1.w),d3        *18    計122クロック
  953.         move.w    d3,a2                *04
  954.         swap    d3                *04
  955.         move.w    d3,PR_BUF+2(a6,a2.w)        *14
  956.         move.w    a2,PR_BUF+4(a6,d3.w)        *14
  957.         move.w    PR_BUF+2(a6,a3.w),d3        *14
  958.         move.w    d1,PR_BUF+2(a6,a3.w)        *14
  959.         move.w    d1,PR_BUF+4(a6,d3.w)        *14
  960.         swap    d3                *04
  961.         move.w    a3,d3                *04
  962.         move.l    d3,PR_BUF+2(a6,d1.w)        *18
  963.  
  964.         move.w    d1,a3
  965.  
  966. @@:        lea    (a0),a2                *
  967.         move.w    PR_BUF(a6,d1.w),(a0)+        *1ドット書き込み
  968.  
  969.         add.b    d0,d0                *┐連鎖の有無フラグ <まず1ビット>
  970.         dbcs    d4,Wyle7B            *┘
  971.         bcc.s    no_chain            *┘
  972.  
  973.         B_TEST                    *┐新たに1ビット読み込んで
  974.         beq.s    @f                *│8ビットの連鎖データにする
  975.         addq.w    #1,d0                *┘        <これで8ビット>
  976.  
  977. @@:        and.w    d2,d0                *
  978.         add.w    d0,d0                *┐連鎖処理へ、じゃんぷ
  979.         move.w    RJ(pc,d0.w),d1            *│
  980.         jmp    RJ(pc,d1.w)            *┘
  981.  
  982. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  983. SETtoTBL:    add.w    d1,d1                *┐
  984.         move.w    PR_BUF+2(a6,a3.w),a3        *│テーブルにセットする
  985.         move.w    d1,PR_BUF(a6,a3.w)        *┘
  986.  
  987. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  988. *        連鎖処理
  989. *- - - -*- - - -*- - - -*- - - -*- - - -*- - - -*- - - -
  990. chain:        lea    (a0),a2                *
  991.         move.w    d1,(a0)+            * 1ドット描き込み
  992.  
  993.         B_TEST                    *┐連鎖の有無
  994.         dbne    d4,Wyle                *┘
  995.         beq.s    chain_ex            *┘
  996.  
  997. chain_next:    B_READ    #8,d0                * 8ビット読み込む
  998.  
  999.         and.w    d2,d0                *
  1000.         add.w    d0,d0                *┐連鎖処理へ、じゃんぷ
  1001.         move.w    RJ(pc,d0.w),d1            *│
  1002.         jmp    RJ(pc,d1.w)            *┘
  1003.  
  1004. no_chain:    B_FB    7                *連鎖が無いので、7ビット捨てる
  1005.  
  1006. chain_ex:    adda.w    DOWNOFS(a6),a0            *┐連鎖と横ループを抜けたあと
  1007.         moveq.l    #0,d4                *│
  1008.         move.w    PSIZE_X(a6),d4            *│
  1009.         subq.w    #1,d4                *│
  1010.         subq.w    #1,PSIZE_Y(a6)            *│
  1011.         bne    Wyle                *│
  1012. PicX_ex:    rts                    *┘
  1013.  
  1014. *+-----------------------------------------------+--------------------------------------+
  1015. *|ジャンプ先テーブル    (これをさらに大きくしていけば、ある程度までは高速になる?)    |
  1016. *+--------------------------------------------------------------------------------------+
  1017. RJ:        dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1018.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1019.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1020.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1021.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1022.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1023.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1024.         dc.w    J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ,J_000xxxxx-RJ
  1025.         dc.w    J_0010000x-RJ,J_0010000x-RJ,J_00100010-RJ,J_00100011-RJ
  1026.         dc.w    J_00100100-RJ,J_00100101-RJ,J_00100110-RJ,J_00100111-RJ
  1027.         dc.w    J_00101000-RJ,J_00101001-RJ,J_00101010-RJ,J_00101011-RJ
  1028.         dc.w    J_00101100-RJ,J_00101101-RJ,J_00101110-RJ,J_00101111-RJ
  1029.         dc.w    J_0011000x-RJ,J_0011000x-RJ,J_00110010-RJ,J_00110011-RJ
  1030.         dc.w    J_00110100-RJ,J_00110101-RJ,J_00110110-RJ,J_00110111-RJ
  1031.         dc.w    J_00111000-RJ,J_00111001-RJ,J_00111010-RJ,J_00111011-RJ
  1032.         dc.w    J_00111100-RJ,J_00111101-RJ,J_00111110-RJ,J_00111111-RJ
  1033.         dc.w    J_01000xxx-RJ,J_01000xxx-RJ,J_01000xxx-RJ,J_01000xxx-RJ
  1034.         dc.w    J_01000xxx-RJ,J_01000xxx-RJ,J_01000xxx-RJ,J_01000xxx-RJ
  1035.         dc.w    J_01001000-RJ,J_01001001-RJ,J_01001010-RJ,J_01001011-RJ
  1036.         dc.w    J_01001100-RJ,J_01001101-RJ,J_01001110-RJ,J_01001111-RJ
  1037.         dc.w    J_0101000x-RJ,J_0101000x-RJ,J_01010010-RJ,J_01010011-RJ
  1038.         dc.w    J_01010100-RJ,J_01010101-RJ,J_01010110-RJ,J_01010111-RJ
  1039.         dc.w    J_01011000-RJ,J_01011001-RJ,J_01011010-RJ,J_01011011-RJ
  1040.         dc.w    J_01011100-RJ,J_01011101-RJ,J_01011110-RJ,J_01011111-RJ
  1041.         dc.w    J_0110000x-RJ,J_0110000x-RJ,J_01100010-RJ,J_01100011-RJ
  1042.         dc.w    J_01100100-RJ,J_01100101-RJ,J_01100110-RJ,J_01100111-RJ
  1043.         dc.w    J_01101000-RJ,J_01101001-RJ,J_01101010-RJ,J_01101011-RJ
  1044.         dc.w    J_01101100-RJ,J_01101101-RJ,J_01101110-RJ,J_01101111-RJ
  1045.         dc.w    J_0111000x-RJ,J_0111000x-RJ,J_01110010-RJ,J_01110011-RJ
  1046.         dc.w    J_01110100-RJ,J_01110101-RJ,J_01110110-RJ,J_01110111-RJ
  1047.         dc.w    J_01111000-RJ,J_01111001-RJ,J_01111010-RJ,J_01111011-RJ
  1048.         dc.w    J_01111100-RJ,J_01111101-RJ,J_01111110-RJ,J_01111111-RJ
  1049.         dc.w    J_10000xxx-RJ,J_10000xxx-RJ,J_10000xxx-RJ,J_10000xxx-RJ
  1050.         dc.w    J_10000xxx-RJ,J_10000xxx-RJ,J_10000xxx-RJ,J_10000xxx-RJ
  1051.         dc.w    J_10001000-RJ,J_10001001-RJ,J_10001010-RJ,J_10001011-RJ
  1052.         dc.w    J_10001100-RJ,J_10001101-RJ,J_10001110-RJ,J_10001111-RJ
  1053.         dc.w    J_1001000x-RJ,J_1001000x-RJ,J_10010010-RJ,J_10010011-RJ
  1054.         dc.w    J_10010100-RJ,J_10010101-RJ,J_10010110-RJ,J_10010111-RJ
  1055.         dc.w    J_10011000-RJ,J_10011001-RJ,J_10011010-RJ,J_10011011-RJ
  1056.         dc.w    J_10011100-RJ,J_10011101-RJ,J_10011110-RJ,J_10011111-RJ
  1057.         dc.w    J_1010000x-RJ,J_1010000x-RJ,J_10100010-RJ,J_10100011-RJ
  1058.         dc.w    J_10100100-RJ,J_10100101-RJ,J_10100110-RJ,J_10100111-RJ
  1059.         dc.w    J_10101000-RJ,J_10101001-RJ,J_10101010-RJ,J_10101011-RJ
  1060.         dc.w    J_10101100-RJ,J_10101101-RJ,J_10101110-RJ,J_10101111-RJ
  1061.         dc.w    J_1011000x-RJ,J_1011000x-RJ,J_10110010-RJ,J_10110011-RJ
  1062.         dc.w    J_10110100-RJ,J_10110101-RJ,J_10110110-RJ,J_10110111-RJ
  1063.         dc.w    J_10111000-RJ,J_10111001-RJ,J_10111010-RJ,J_10111011-RJ
  1064.         dc.w    J_10111100-RJ,J_10111101-RJ,J_10111110-RJ,J_10111111-RJ
  1065.         dc.w    J_11000xxx-RJ,J_11000xxx-RJ,J_11000xxx-RJ,J_11000xxx-RJ
  1066.         dc.w    J_11000xxx-RJ,J_11000xxx-RJ,J_11000xxx-RJ,J_11000xxx-RJ
  1067.         dc.w    J_11001000-RJ,J_11001001-RJ,J_11001010-RJ,J_11001011-RJ
  1068.         dc.w    J_11001100-RJ,J_11001101-RJ,J_11001110-RJ,J_11001111-RJ
  1069.         dc.w    J_1101000x-RJ,J_1101000x-RJ,J_11010010-RJ,J_11010011-RJ
  1070.         dc.w    J_11010100-RJ,J_11010101-RJ,J_11010110-RJ,J_11010111-RJ
  1071.         dc.w    J_11011000-RJ,J_11011001-RJ,J_11011010-RJ,J_11011011-RJ
  1072.         dc.w    J_11011100-RJ,J_11011101-RJ,J_11011110-RJ,J_11011111-RJ
  1073.         dc.w    J_1110000x-RJ,J_1110000x-RJ,J_11100010-RJ,J_11100011-RJ
  1074.         dc.w    J_11100100-RJ,J_11100101-RJ,J_11100110-RJ,J_11100111-RJ
  1075.         dc.w    J_11101000-RJ,J_11101001-RJ,J_11101010-RJ,J_11101011-RJ
  1076.         dc.w    J_11101100-RJ,J_11101101-RJ,J_11101110-RJ,J_11101111-RJ
  1077.         dc.w    J_1111000x-RJ,J_1111000x-RJ,J_11110010-RJ,J_11110011-RJ
  1078.         dc.w    J_11110100-RJ,J_11110101-RJ,J_11110110-RJ,J_11110111-RJ
  1079.         dc.w    J_11111000-RJ,J_11111001-RJ,J_11111010-RJ,J_11111011-RJ
  1080.         dc.w    J_11111100-RJ,J_11111101-RJ,J_11111110-RJ,J_11111111-RJ
  1081.  
  1082. *+--------------------------------------------------------------------------------------+
  1083. *    連鎖処理ルーチン
  1084. *+--------------------------------------------------------------------------------------+
  1085. CHAIN_NEXT    .macro                    *<次の連鎖へ>
  1086.         bra    chain_next            *
  1087.         .endm
  1088.  
  1089. CHAIN00X    .macro                    *<00の次、不足した分の処理>
  1090.         B_TEST                    *┐[00x]
  1091.         dbne    d4,Wyle                *│
  1092.         bra    chain_00x_01            *
  1093.         .endm
  1094.  
  1095. CHAIN_EX1:    .macro                    *<連鎖終わりの処理>1bit余ってる
  1096.         dbra    d4,Wyle1B            *
  1097.         B_FB    1                *
  1098.         bra    chain_ex            *
  1099.         .endm
  1100.  
  1101. CHAIN_EX3:    .macro                    *<連鎖終わりの処理>3bit余ってる
  1102.         dbra    d4,Wyle3B            *
  1103.         B_FB    3                *
  1104.         bra    chain_ex            *
  1105.         .endm
  1106.  
  1107. CHAIN_EX5:    .macro                    *<連鎖終わりの処理>5bit余ってる
  1108.         dbra    d4,Wyle5B            *
  1109.         B_FB    5                *
  1110.         bra    chain_ex            *
  1111.         .endm
  1112.  
  1113. *+--------------------------------------------------------------------------------------+
  1114. *chain_00x:    B_TEST                    *┐[00x]
  1115. *        dbne    d4,Wyle                *│
  1116. chain_00x_01:    beq    chain_ex            *┘
  1117.         B_TEST                    *│[001x]
  1118.         bne    1f                *│
  1119.         lea    1024-4(a2),a2            *│[0010]=左2
  1120.         move.w    #UpR2,(a2)            *│
  1121.         bra    chain_next            *│
  1122. 1:        lea    1024+4(a2),a2            *│[0011]=右2
  1123.         move.w    #UpL2,(a2)            *│
  1124.         bra    chain_next            *┘
  1125.  
  1126. Wyle1B:        btst.l    #1,d0                *
  1127.         bne.s    W1B_1x                *
  1128.  
  1129. W1B_0x:        B_TEST                    *<0x>
  1130.         bne.s    W1B_01                *
  1131.  
  1132. W1B_00:        jmp    (a5)                *<00>    =1
  1133.  
  1134. W1B_01:        SET_NUMd                *<01>    =2
  1135.  
  1136. W1B_1x:        B_TEST                    *<1x>
  1137.         beq    W_10xx                *
  1138.         bra    W_11                *
  1139.  
  1140.  
  1141.  
  1142. Wyle7B:        B_FB    5
  1143.         andi.w    #%11100000,d0
  1144.         move.w    Wyle7Btbl(pc,d0.w),d0
  1145.         jmp    Wyle7Btbl(pc,d0.w)
  1146.  
  1147. Wyle7Btbl:    .rept    16
  1148.         dc.w    W_00-Wyle7Btbl
  1149.         .endm
  1150.         .rept    16
  1151.         dc.w    W_00-Wyle7Btbl
  1152.         .endm
  1153.         .rept    16
  1154.         dc.w    W_01-Wyle7Btbl
  1155.         .endm
  1156.         .rept    16
  1157.         dc.w    W_01-Wyle7Btbl
  1158.         .endm
  1159.         .rept    16
  1160.         dc.w    W3B_100x-Wyle7Btbl
  1161.         .endm
  1162.         .rept    16
  1163.         dc.w    W3B_101x-Wyle7Btbl
  1164.         .endm
  1165.         .rept    16
  1166.         dc.w    W_11-Wyle7Btbl
  1167.         .endm
  1168.         .rept    16
  1169.         dc.w    W_11-Wyle7Btbl
  1170.         .endm
  1171.  
  1172. Wyle5B:        B_FB    3
  1173.         andi.w    #%111000,d0
  1174.         move.w    Wyle5Btbl(pc,d0.w),d0
  1175.         jmp    Wyle5Btbl(pc,d0.w)
  1176.  
  1177. Wyle5Btbl:    .rept    4
  1178.         dc.w    W_00-Wyle5Btbl
  1179.         .endm
  1180.         .rept    4
  1181.         dc.w    W_00-Wyle5Btbl
  1182.         .endm
  1183.         .rept    4
  1184.         dc.w    W_01-Wyle5Btbl
  1185.         .endm
  1186.         .rept    4
  1187.         dc.w    W_01-Wyle5Btbl
  1188.         .endm
  1189.         .rept    4
  1190.         dc.w    W3B_100x-Wyle5Btbl
  1191.         .endm
  1192.         .rept    4
  1193.         dc.w    W3B_101x-Wyle5Btbl
  1194.         .endm
  1195.         .rept    4
  1196.         dc.w    W_11-Wyle5Btbl
  1197.         .endm
  1198.         .rept    4
  1199.         dc.w    W_11-Wyle5Btbl
  1200.         .endm
  1201.  
  1202. Wyle3B:        B_FB    1
  1203.         andi.w    #%1110,d0
  1204.         move.w    Wyle3Btbl(pc,d0.w),d0
  1205.         jmp    Wyle3Btbl(pc,d0.w)
  1206.  
  1207. Wyle3Btbl:    dc.w    W_00-Wyle3Btbl
  1208.         dc.w    W_00-Wyle3Btbl
  1209.         dc.w    W_01-Wyle3Btbl
  1210.         dc.w    W_01-Wyle3Btbl
  1211.         dc.w    W3B_100x-Wyle3Btbl
  1212.         dc.w    W3B_101x-Wyle3Btbl
  1213.         dc.w    W_11-Wyle3Btbl
  1214.         dc.w    W_11-Wyle3Btbl
  1215.  
  1216. W3B_100x:    subq.w    #1,d7
  1217.         B_TEST                    *<100x>
  1218.         bne.s    W3B_1001            *
  1219.         SET_NUM    3                *<1000>    =3
  1220. W3B_1001:    SET_NUM    4                *<1001>    =4
  1221.  
  1222. W3B_101x:    subq.w    #1,d7
  1223.         B_TEST                    *<101x>
  1224.         bne.s    W3B_1011            *
  1225.         SET_NUM    5                *<1010>    =5
  1226. W3B_1011:    SET_NUM    6                *<1011>    =6
  1227.  
  1228. *+--------------------------------------------------------------------------------------+
  1229. *    ここからの連鎖処理ルーチンは、Cのプログラムで自動生成し、少し手を加えました。
  1230. *+--------------------------------------------------------------------------------------+
  1231. J_000xxxxx:    *終
  1232.         CHAIN_EX5
  1233.  
  1234. J_0010000x:    *左2/終
  1235.         lea    1024-4(a2),a2
  1236.         move.w    #UpR2,(a2)
  1237.         CHAIN_EX1
  1238.  
  1239. J_00100010:    *左2/左2/
  1240.         lea    2048-8(a2),a2
  1241.         move.w    #UpR2,(a2)
  1242.         move.w    (a2),-1024+4(a2)
  1243.         CHAIN_NEXT
  1244.  
  1245. J_00100011:    *左2/右2/
  1246.         lea    2048+0(a2),a2
  1247.         move.w    #UpR2,-1024-4(a2)
  1248.         move.w    #UpL2,(a2)
  1249.         CHAIN_NEXT
  1250.  
  1251. J_00100100:    *左2/左1/00/
  1252.         lea    2048-6(a2),a2
  1253.         move.w    #UpR2,-1024+2(a2)
  1254.         move.w    #UpR1,(a2)
  1255.         CHAIN00X
  1256.  
  1257. J_00100101:    *左2/左1/左1/
  1258.         lea    3072-8(a2),a2
  1259.         move.w    #UpR2,-2048+4(a2)
  1260.         move.w    #UpR1,(a2)
  1261.         move.w    (a2),-1024+2(a2)
  1262.         CHAIN_NEXT
  1263.  
  1264. J_00100110:    *左2/左1/中1/
  1265.         lea    3072-6(a2),a2
  1266.         move.w    #UpR2,-2048+2(a2)
  1267.         move.w    #UpR1,-1024+0(a2)
  1268.         move.w    d5,(a2)
  1269.         CHAIN_NEXT
  1270.  
  1271. J_00100111:    *左2/左1/右1/
  1272.         lea    3072-4(a2),a2
  1273.         move.w    #UpR2,-2048+0(a2)
  1274.         move.w    #UpR1,-1024-2(a2)
  1275.         move.w    #UpL1,(a2)
  1276.         CHAIN_NEXT
  1277.  
  1278. J_00101000:    *左2/中1/00/
  1279.         lea    2048-4(a2),a2
  1280.         move.w    #UpR2,-1024+0(a2)
  1281.         move.w    d5,(a2)
  1282.         CHAIN00X
  1283.  
  1284. J_00101001:    *左2/中1/左1/
  1285.         lea    3072-6(a2),a2
  1286.         move.w    #UpR2,-2048+2(a2)
  1287.         move.w    d5,-1024+2(a2)
  1288.         move.w    #UpR1,(a2)
  1289.         CHAIN_NEXT
  1290.  
  1291. J_00101010:    *左2/中1/中1/
  1292.         lea    3072-4(a2),a2
  1293.         move.w    #UpR2,-2048+0(a2)
  1294.         move.w    d5,-1024+0(a2)
  1295.         move.w    d5,(a2)
  1296.         CHAIN_NEXT
  1297.  
  1298. J_00101011:    *左2/中1/右1/
  1299.         lea    3072-2(a2),a2
  1300.         move.w    #UpR2,-2048-2(a2)
  1301.         move.w    d5,-1024-2(a2)
  1302.         move.w    #UpL1,(a2)
  1303.         CHAIN_NEXT
  1304.  
  1305. J_00101100:    *左2/右1/00/
  1306.         lea    2048-2(a2),a2
  1307.         move.w    #UpR2,-1024-2(a2)
  1308.         move.w    #UpL1,(a2)
  1309.         CHAIN00X
  1310.  
  1311. J_00101101:    *左2/右1/左1/
  1312.         lea    3072-4(a2),a2
  1313.         move.w    #UpR2,-2048+0(a2)
  1314.         move.w    #UpL1,-1024+2(a2)
  1315.         move.w    #UpR1,(a2)
  1316.         CHAIN_NEXT
  1317.  
  1318. J_00101110:    *左2/右1/中1/
  1319.         lea    3072-2(a2),a2
  1320.         move.w    #UpR2,-2048-2(a2)
  1321.         move.w    #UpL1,-1024+0(a2)
  1322.         move.w    d5,(a2)
  1323.         CHAIN_NEXT
  1324.  
  1325. J_00101111:    *左2/右1/右1/
  1326.         lea    3072+0(a2),a2
  1327.         move.w    #UpR2,-2048-4(a2)
  1328.         move.w    #UpL1,(a2)
  1329.         move.w    (a2),-1024-2(a2)
  1330.         CHAIN_NEXT
  1331.  
  1332. J_0011000x:    *右2/終
  1333.         lea    1024+4(a2),a2
  1334.         move.w    #UpL2,(a2)
  1335.         CHAIN_EX1
  1336.  
  1337. J_00110010:    *右2/左2/
  1338.         lea    2048+0(a2),a2
  1339.         move.w    #UpL2,-1024+4(a2)
  1340.         move.w    #UpR2,(a2)
  1341.         CHAIN_NEXT
  1342.  
  1343. J_00110011:    *右2/右2/
  1344.         lea    2048+8(a2),a2
  1345.         move.w    #UpL2,(a2)
  1346.         move.w    (a2),-1024-4(a2)
  1347.         CHAIN_NEXT
  1348.  
  1349. J_00110100:    *右2/左1/00/
  1350.         lea    2048+2(a2),a2
  1351.         move.w    #UpL2,-1024+2(a2)
  1352.         move.w    #UpR1,(a2)
  1353.         CHAIN00X
  1354.  
  1355. J_00110101:    *右2/左1/左1/
  1356.         lea    3072+0(a2),a2
  1357.         move.w    #UpL2,-2048+4(a2)
  1358.         move.w    #UpR1,(a2)
  1359.         move.w    (a2),-1024+2(a2)
  1360.         CHAIN_NEXT
  1361.  
  1362. J_00110110:    *右2/左1/中1/
  1363.         lea    3072+2(a2),a2
  1364.         move.w    #UpL2,-2048+2(a2)
  1365.         move.w    #UpR1,-1024+0(a2)
  1366.         move.w    d5,(a2)
  1367.         CHAIN_NEXT
  1368.  
  1369. J_00110111:    *右2/左1/右1/
  1370.         lea    3072+4(a2),a2
  1371.         move.w    #UpL2,-2048+0(a2)
  1372.         move.w    #UpR1,-1024-2(a2)
  1373.         move.w    #UpL1,(a2)
  1374.         CHAIN_NEXT
  1375.  
  1376. J_00111000:    *右2/中1/00/
  1377.         lea    2048+4(a2),a2
  1378.         move.w    #UpL2,-1024+0(a2)
  1379.         move.w    d5,(a2)
  1380.         CHAIN00X
  1381.  
  1382. J_00111001:    *右2/中1/左1/
  1383.         lea    3072+2(a2),a2
  1384.         move.w    #UpL2,-2048+2(a2)
  1385.         move.w    d5,-1024+2(a2)
  1386.         move.w    #UpR1,(a2)
  1387.         CHAIN_NEXT
  1388.  
  1389. J_00111010:    *右2/中1/中1/
  1390.         lea    3072+4(a2),a2
  1391.         move.w    #UpL2,-2048+0(a2)
  1392.         move.w    d5,-1024+0(a2)
  1393.         move.w    d5,(a2)
  1394.         CHAIN_NEXT
  1395.  
  1396. J_00111011:    *右2/中1/右1/
  1397.         lea    3072+6(a2),a2
  1398.         move.w    #UpL2,-2048-2(a2)
  1399.         move.w    d5,-1024-2(a2)
  1400.         move.w    #UpL1,(a2)
  1401.         CHAIN_NEXT
  1402.  
  1403. J_00111100:    *右2/右1/00/
  1404.         lea    2048+6(a2),a2
  1405.         move.w    #UpL2,-1024-2(a2)
  1406.         move.w    #UpL1,(a2)
  1407.         CHAIN00X
  1408.  
  1409. J_00111101:    *右2/右1/左1/
  1410.         lea    3072+4(a2),a2
  1411.         move.w    #UpL2,-2048+0(a2)
  1412.         move.w    #UpL1,-1024+2(a2)
  1413.         move.w    #UpR1,(a2)
  1414.         CHAIN_NEXT
  1415.  
  1416. J_00111110:    *右2/右1/中1/
  1417.         lea    3072+6(a2),a2
  1418.         move.w    #UpL2,-2048-2(a2)
  1419.         move.w    #UpL1,-1024+0(a2)
  1420.         move.w    d5,(a2)
  1421.         CHAIN_NEXT
  1422.  
  1423. J_00111111:    *右2/右1/右1/
  1424.         lea    3072+8(a2),a2
  1425.         move.w    #UpL2,-2048-4(a2)
  1426.         move.w    #UpL1,(a2)
  1427.         move.w    (a2),-1024-2(a2)
  1428.         CHAIN_NEXT
  1429.  
  1430. J_01000xxx:    *左1/終
  1431.         lea    1024-2(a2),a2
  1432.         move.w    #UpR1,(a2)
  1433.         CHAIN_EX3
  1434.  
  1435. J_01001000:    *左1/左2/00/
  1436.         lea    2048-6(a2),a2
  1437.         move.w    #UpR1,-1024+4(a2)
  1438.         move.w    #UpR2,(a2)
  1439.         CHAIN00X
  1440.  
  1441. J_01001001:    *左1/左2/左1/
  1442.         lea    3072-8(a2),a2
  1443.         move.w    #UpR1,(a2)
  1444.         move.w    (a2),-2048+6(a2)
  1445.         move.w    #UpR2,-1024+2(a2)
  1446.         CHAIN_NEXT
  1447.  
  1448. J_01001010:    *左1/左2/中1/
  1449.         lea    3072-6(a2),a2
  1450.         move.w    #UpR1,-2048+4(a2)
  1451.         move.w    #UpR2,-1024+0(a2)
  1452.         move.w    d5,(a2)
  1453.         CHAIN_NEXT
  1454.  
  1455. J_01001011:    *左1/左2/右1/
  1456.         lea    3072-4(a2),a2
  1457.         move.w    #UpR1,-2048+2(a2)
  1458.         move.w    #UpR2,-1024-2(a2)
  1459.         move.w    #UpL1,(a2)
  1460.         CHAIN_NEXT
  1461.  
  1462. J_01001100:    *左1/右2/00/
  1463.         lea    2048+2(a2),a2
  1464.         move.w    #UpR1,-1024-4(a2)
  1465.         move.w    #UpL2,(a2)
  1466.         CHAIN00X
  1467.  
  1468. J_01001101:    *左1/右2/左1/
  1469.         lea    3072+0(a2),a2
  1470.         move.w    #UpR1,(a2)
  1471.         move.w    (a2),-2048-2(a2)
  1472.         move.w    #UpL2,-1024+2(a2)
  1473.         CHAIN_NEXT
  1474.  
  1475. J_01001110:    *左1/右2/中1/
  1476.         lea    3072+2(a2),a2
  1477.         move.w    #UpR1,-2048-4(a2)
  1478.         move.w    #UpL2,-1024+0(a2)
  1479.         move.w    d5,(a2)
  1480.         CHAIN_NEXT
  1481.  
  1482. J_01001111:    *左1/右2/右1/
  1483.         lea    3072+4(a2),a2
  1484.         move.w    #UpR1,-2048-6(a2)
  1485.         move.w    #UpL2,-1024-2(a2)
  1486.         move.w    #UpL1,(a2)
  1487.         CHAIN_NEXT
  1488.  
  1489. J_0101000x:    *左1/左1/終
  1490.         lea    2048-4(a2),a2
  1491.         move.w    #UpR1,(a2)
  1492.         move.w    (a2),-1024+2(a2)
  1493.         CHAIN_EX1
  1494.  
  1495. J_01010010:    *左1/左1/左2/
  1496.         lea    3072-8(a2),a2
  1497.         move.w    #UpR1,-2048+6(a2)
  1498.         move.w    #UpR1,-1024+4(a2)
  1499.         move.w    #UpR2,(a2)
  1500.         CHAIN_NEXT
  1501.  
  1502. J_01010011:    *左1/左1/右2/
  1503.         lea    3072+0(a2),a2
  1504.         move.w    #UpR1,-2048-2(a2)
  1505.         move.w    #UpR1,-1024-4(a2)
  1506.         move.w    #UpL2,(a2)
  1507.         CHAIN_NEXT
  1508.  
  1509. J_01010100:    *左1/左1/左1/00/
  1510.         lea    3072-6(a2),a2
  1511.         addq.w    #2,d5
  1512.         move.w    d5,-2048+4(a2)
  1513.         move.w    d5,-1024+2(a2)
  1514.         move.w    d5,(a2)
  1515.         subq.w    #2,d5
  1516.         CHAIN00X
  1517.  
  1518. J_01010101:    *左1/左1/左1/左1/
  1519.         lea    4096-8(a2),a2
  1520.         addq.w    #2,d5
  1521.         move.w    d5,-3072+6(a2)
  1522.         move.w    d5,-2048+4(a2)
  1523.         move.w    d5,-1024+2(a2)
  1524.         move.w    d5,(a2)
  1525.         subq.w    #2,d5
  1526.         CHAIN_NEXT
  1527.  
  1528. J_01010110:    *左1/左1/左1/中1/
  1529.         lea    4096-6(a2),a2
  1530.         addq.w    #2,d5
  1531.         move.w    d5,-3072+4(a2)
  1532.         move.w    d5,-2048+2(a2)
  1533.         move.w    d5,-1024+0(a2)
  1534.         subq.w    #2,d5
  1535.         move.w    d5,(a2)
  1536.         CHAIN_NEXT
  1537.  
  1538. J_01010111:    *左1/左1/左1/右1/
  1539.         lea    4096-4(a2),a2
  1540.         addq.w    #2,d5
  1541.         move.w    d5,-3072+2(a2)
  1542.         move.w    d5,-2048+0(a2)
  1543.         move.w    d5,-1024-2(a2)
  1544.         subq.w    #2,d5
  1545.         move.w    #UpL1,(a2)
  1546.         CHAIN_NEXT
  1547.  
  1548. J_01011000:    *左1/左1/中1/00/
  1549.         lea    3072-4(a2),a2
  1550.         move.w    #UpR1,-2048+2(a2)
  1551.         move.w    #UpR1,-1024+0(a2)
  1552.         move.w    d5,(a2)
  1553.         CHAIN00X
  1554.  
  1555. J_01011001:    *左1/左1/中1/左1/
  1556.         lea    4096-6(a2),a2
  1557.         addq.w    #2,d5
  1558.         move.w    d5,-3072+4(a2)
  1559.         move.w    d5,-2048+2(a2)
  1560.         move.w    d5,(a2)
  1561.         subq.w    #2,d5
  1562.         move.w    d5,-1024+2(a2)
  1563.         CHAIN_NEXT
  1564.  
  1565. J_01011010:    *左1/左1/中1/中1/
  1566.         lea    4096-4(a2),a2
  1567.         move.w    #UpR1,-3072+2(a2)
  1568.         move.w    #UpR1,-2048+0(a2)
  1569.         move.w    d5,-1024+0(a2)
  1570.         move.w    d5,(a2)
  1571.         CHAIN_NEXT
  1572.  
  1573. J_01011011:    *左1/左1/中1/右1/
  1574.         lea    4096-2(a2),a2
  1575.         move.w    #UpR1,-3072+0(a2)
  1576.         move.w    #UpR1,-2048-2(a2)
  1577.         move.w    d5,-1024-2(a2)
  1578.         move.w    #UpL1,(a2)
  1579.         CHAIN_NEXT
  1580.  
  1581. J_01011100:    *左1/左1/右1/00/
  1582.         lea    3072-2(a2),a2
  1583.         move.w    #UpR1,-2048+0(a2)
  1584.         move.w    #UpR1,-1024-2(a2)
  1585.         move.w    #UpL1,(a2)
  1586.         CHAIN00X
  1587.  
  1588. J_01011101:    *左1/左1/右1/左1/
  1589.         lea    4096-4(a2),a2
  1590.         addq.w    #2,d5
  1591.         move.w    d5,-3072+2(a2)
  1592.         move.w    d5,-2048+0(a2)
  1593.         move.w    #UpL1,-1024+2(a2)
  1594.         move.w    d5,(a2)
  1595.         subq.w    #2,d5
  1596.         CHAIN_NEXT
  1597.  
  1598. J_01011110:    *左1/左1/右1/中1/
  1599.         lea    4096-2(a2),a2
  1600.         move.w    #UpR1,-3072+0(a2)
  1601.         move.w    #UpR1,-2048-2(a2)
  1602.         move.w    #UpL1,-1024+0(a2)
  1603.         move.w    d5,(a2)
  1604.         CHAIN_NEXT
  1605.  
  1606. J_01011111:    *左1/左1/右1/右1/
  1607.         lea    4096+0(a2),a2
  1608.         addq.w    #2,d5
  1609.         move.w    d5,-3072-2(a2)
  1610.         move.w    d5,-2048-4(a2)
  1611.         subq.w    #4,d5
  1612.         move.w    d5,-1024-2(a2)
  1613.         move.w    d5,(a2)
  1614.         addq.w    #2,d5
  1615.         CHAIN_NEXT
  1616.  
  1617. J_0110000x:    *左1/中1/終
  1618.         lea    2048-2(a2),a2
  1619.         move.w    #UpR1,-1024+0(a2)
  1620.         move.w    d5,(a2)
  1621.         CHAIN_EX1
  1622.  
  1623. J_01100010:    *左1/中1/左2/
  1624.         lea    3072-6(a2),a2
  1625.         move.w    #UpR1,-2048+4(a2)
  1626.         move.w    d5,-1024+4(a2)
  1627.         move.w    #UpR2,(a2)
  1628.         CHAIN_NEXT
  1629.  
  1630. J_01100011:    *左1/中1/右2/
  1631.         lea    3072+2(a2),a2
  1632.         move.w    #UpR1,-2048-4(a2)
  1633.         move.w    d5,-1024-4(a2)
  1634.         move.w    #UpL2,(a2)
  1635.         CHAIN_NEXT
  1636.  
  1637. J_01100100:    *左1/中1/左1/00/
  1638.         lea    3072-4(a2),a2
  1639.         move.w    #UpR1,(a2)
  1640.         move.w    (a2),-2048+2(a2)
  1641.         move.w    d5,-1024+2(a2)
  1642.         CHAIN00X
  1643.  
  1644. J_01100101:    *左1/中1/左1/左1/
  1645.         lea    4096-6(a2),a2
  1646.         addq.w    #2,d5
  1647.         move.w    d5,-3072+4(a2)
  1648.         move.w    d5,-1024+2(a2)
  1649.         move.w    d5,(a2)
  1650.         subq.w    #2,d5
  1651.         move.w    d5,-2048+4(a2)
  1652.         CHAIN_NEXT
  1653.  
  1654. J_01100110:    *左1/中1/左1/中1/
  1655.         lea    4096-4(a2),a2
  1656.         move.w    #UpR1,-3072+2(a2)
  1657.         move.w    d5,-2048+2(a2)
  1658.         move.w    #UpR1,-1024+0(a2)
  1659.         move.w    d5,(a2)
  1660.         CHAIN_NEXT
  1661.  
  1662. J_01100111:    *左1/中1/左1/右1/
  1663.         lea    4096-2(a2),a2
  1664.         move.w    #UpR1,-3072+0(a2)
  1665.         move.w    d5,-2048+0(a2)
  1666.         move.w    #UpR1,-1024-2(a2)
  1667.         move.w    #UpL1,(a2)
  1668.         CHAIN_NEXT
  1669.  
  1670. J_01101000:    *左1/中1/中1/00/
  1671.         lea    3072-2(a2),a2
  1672.         move.w    #UpR1,-2048+0(a2)
  1673.         move.w    d5,-1024+0(a2)
  1674.         move.w    d5,(a2)
  1675.         CHAIN00X
  1676.  
  1677. J_01101001:    *左1/中1/中1/左1/
  1678.         lea    4096-4(a2),a2
  1679.         move.w    #UpR1,(a2)
  1680.         move.w    (a2),-3072+2(a2)
  1681.         move.w    d5,-2048+2(a2)
  1682.         move.w    d5,-1024+2(a2)
  1683.         CHAIN_NEXT
  1684.  
  1685. J_01101010:    *左1/中1/中1/中1/
  1686.         lea    4096-2(a2),a2
  1687.         move.w    #UpR1,-3072+0(a2)
  1688.         move.w    d5,-2048+0(a2)
  1689.         move.w    d5,-1024+0(a2)
  1690.         move.w    d5,(a2)
  1691.         CHAIN_NEXT
  1692.  
  1693. J_01101011:    *左1/中1/中1/右1/
  1694.         lea    4096+0(a2),a2
  1695.         move.w    #UpR1,-3072-2(a2)
  1696.         move.w    d5,-2048-2(a2)
  1697.         move.w    d5,-1024-2(a2)
  1698.         move.w    #UpL1,(a2)
  1699.         CHAIN_NEXT
  1700.  
  1701. J_01101100:    *左1/中1/右1/00/
  1702.         lea    3072+0(a2),a2
  1703.         move.w    #UpR1,-2048-2(a2)
  1704.         move.w    d5,-1024-2(a2)
  1705.         move.w    #UpL1,(a2)
  1706.         CHAIN00X
  1707.  
  1708. J_01101101:    *左1/中1/右1/左1/
  1709.         lea    4096-2(a2),a2
  1710.         move.w    #UpR1,(a2)
  1711.         move.w    (a2),-3072+0(a2)
  1712.         move.w    d5,-2048+0(a2)
  1713.         move.w    #UpL1,-1024+2(a2)
  1714.         CHAIN_NEXT
  1715.  
  1716. J_01101110:    *左1/中1/右1/中1/
  1717.         lea    4096+0(a2),a2
  1718.         move.w    #UpR1,-3072-2(a2)
  1719.         move.w    d5,-2048-2(a2)
  1720.         move.w    #UpL1,-1024+0(a2)
  1721.         move.w    d5,(a2)
  1722.         CHAIN_NEXT
  1723.  
  1724. J_01101111:    *左1/中1/右1/右1/
  1725.         lea    4096+2(a2),a2
  1726.         move.w    #UpR1,-3072-4(a2)
  1727.         move.w    d5,-2048-4(a2)
  1728.         move.w    #UpL1,(a2)
  1729.         move.w    (a2),-1024-2(a2)
  1730.         CHAIN_NEXT
  1731.  
  1732. J_0111000x:    *左1/右1/終
  1733.         lea    2048+0(a2),a2
  1734.         move.w    #UpR1,-1024-2(a2)
  1735.         move.w    #UpL1,(a2)
  1736.         CHAIN_EX1
  1737.  
  1738. J_01110010:    *左1/右1/左2/
  1739.         lea    3072-4(a2),a2
  1740.         move.w    #UpR1,-2048+2(a2)
  1741.         move.w    #UpL1,-1024+4(a2)
  1742.         move.w    #UpR2,(a2)
  1743.         CHAIN_NEXT
  1744.  
  1745. J_01110011:    *左1/右1/右2/
  1746.         lea    3072+4(a2),a2
  1747.         move.w    #UpR1,-2048-6(a2)
  1748.         move.w    #UpL1,-1024-4(a2)
  1749.         move.w    #UpL2,(a2)
  1750.         CHAIN_NEXT
  1751.  
  1752. J_01110100:    *左1/右1/左1/00/
  1753.         lea    3072-2(a2),a2
  1754.         move.w    #UpR1,(a2)
  1755.         move.w    (a2),-2048+0(a2)
  1756.         move.w    #UpL1,-1024+2(a2)
  1757.         CHAIN00X
  1758.  
  1759. J_01110101:    *左1/右1/左1/左1/
  1760.         lea    4096-4(a2),a2
  1761.         addq.w    #2,d5
  1762.         move.w    d5,-3072+2(a2)
  1763.         move.w    #UpL1,-2048+4(a2)
  1764.         move.w    d5,-1024+2(a2)
  1765.         move.w    d5,(a2)
  1766.         subq.w    #2,d5
  1767.         CHAIN_NEXT
  1768.  
  1769. J_01110110:    *左1/右1/左1/中1/
  1770.         lea    4096-2(a2),a2
  1771.         move.w    #UpR1,-3072+0(a2)
  1772.         move.w    #UpL1,-2048+2(a2)
  1773.         move.w    #UpR1,-1024+0(a2)
  1774.         move.w    d5,(a2)
  1775.         CHAIN_NEXT
  1776.  
  1777. J_01110111:    *左1/右1/左1/右1/
  1778.         lea    4096+0(a2),a2
  1779.         subq.w    #2,d5
  1780.         move.w    d5,-2048+0(a2)
  1781.         move.w    d5,(a2)
  1782.         addq.w    #4,d5
  1783.         move.w    d5,-3072-2(a2)
  1784.         move.w    d5,-1024-2(a2)
  1785.         subq.w    #2,d5
  1786.         CHAIN_NEXT
  1787.  
  1788. J_01111000:    *左1/右1/中1/00/
  1789.         lea    3072+0(a2),a2
  1790.         move.w    #UpR1,-2048-2(a2)
  1791.         move.w    #UpL1,-1024+0(a2)
  1792.         move.w    d5,(a2)
  1793.         CHAIN00X
  1794.  
  1795. J_01111001:    *左1/右1/中1/左1/
  1796.         lea    4096-2(a2),a2
  1797.         move.w    #UpR1,(a2)
  1798.         move.w    (a2),-3072+0(a2)
  1799.         move.w    #UpL1,-2048+2(a2)
  1800.         move.w    d5,-1024+2(a2)
  1801.         CHAIN_NEXT
  1802.  
  1803. J_01111010:    *左1/右1/中1/中1/
  1804.         lea    4096+0(a2),a2
  1805.         move.w    #UpR1,-3072-2(a2)
  1806.         move.w    #UpL1,-2048+0(a2)
  1807.         move.w    d5,-1024+0(a2)
  1808.         move.w    d5,(a2)
  1809.         CHAIN_NEXT
  1810.  
  1811. J_01111011:    *左1/右1/中1/右1/
  1812.         lea    4096+2(a2),a2
  1813.         move.w    #UpR1,-3072-4(a2)
  1814.         move.w    #UpL1,(a2)
  1815.         move.w    (a2),-2048-2(a2)
  1816.         move.w    d5,-1024-2(a2)
  1817.         CHAIN_NEXT
  1818.  
  1819. J_01111100:    *左1/右1/右1/00/
  1820.         lea    3072+2(a2),a2
  1821.         move.w    #UpR1,-2048-4(a2)
  1822.         move.w    #UpL1,(a2)
  1823.         move.w    (a2),-1024-2(a2)
  1824.         CHAIN00X
  1825.  
  1826. J_01111101:    *左1/右1/右1/左1/
  1827.         lea    4096+0(a2),a2
  1828.         subq.w    #2,d5
  1829.         move.w    d5,-2048+0(a2)
  1830.         move.w    d5,-1024+2(a2)
  1831.         addq.w    #4,d5
  1832.         move.w    d5,-3072-2(a2)
  1833.         move.w    d5,(a2)
  1834.         subq.w    #2,d5
  1835.         CHAIN_NEXT
  1836.  
  1837. J_01111110:    *左1/右1/右1/中1/
  1838.         lea    4096+2(a2),a2
  1839.         move.w    #UpR1,-3072-4(a2)
  1840.         move.w    #UpL1,-2048-2(a2)
  1841.         move.w    #UpL1,-1024+0(a2)
  1842.         move.w    d5,(a2)
  1843.         CHAIN_NEXT
  1844.  
  1845. J_01111111:    *左1/右1/右1/右1/
  1846.         lea    4096+4(a2),a2
  1847.         move.w    #UpR1,-3072-6(a2)
  1848.         subq.w    #2,d5
  1849.         move.w    d5,-2048-4(a2)
  1850.         move.w    d5,-1024-2(a2)
  1851.         move.w    d5,(a2)
  1852.         addq.w    #2,d5
  1853.         CHAIN_NEXT
  1854.  
  1855. J_10000xxx:    *中1/終
  1856.         lea    1024+0(a2),a2
  1857.         move.w    d5,(a2)
  1858.         CHAIN_EX3
  1859.  
  1860. J_10001000:    *中1/左2/00/
  1861.         lea    2048-4(a2),a2
  1862.         move.w    d5,-1024+4(a2)
  1863.         move.w    #UpR2,(a2)
  1864.         CHAIN00X
  1865.  
  1866. J_10001001:    *中1/左2/左1/
  1867.         lea    3072-6(a2),a2
  1868.         move.w    d5,-2048+6(a2)
  1869.         move.w    #UpR2,-1024+2(a2)
  1870.         move.w    #UpR1,(a2)
  1871.         CHAIN_NEXT
  1872.  
  1873. J_10001010:    *中1/左2/中1/
  1874.         lea    3072-4(a2),a2
  1875.         move.w    d5,-2048+4(a2)
  1876.         move.w    #UpR2,-1024+0(a2)
  1877.         move.w    d5,(a2)
  1878.         CHAIN_NEXT
  1879.  
  1880. J_10001011:    *中1/左2/右1/
  1881.         lea    3072-2(a2),a2
  1882.         move.w    d5,-2048+2(a2)
  1883.         move.w    #UpR2,-1024-2(a2)
  1884.         move.w    #UpL1,(a2)
  1885.         CHAIN_NEXT
  1886.  
  1887. J_10001100:    *中1/右2/00/
  1888.         lea    2048+4(a2),a2
  1889.         move.w    d5,-1024-4(a2)
  1890.         move.w    #UpL2,(a2)
  1891.         CHAIN00X
  1892.  
  1893. J_10001101:    *中1/右2/左1/
  1894.         lea    3072+2(a2),a2
  1895.         move.w    d5,-2048-2(a2)
  1896.         move.w    #UpL2,-1024+2(a2)
  1897.         move.w    #UpR1,(a2)
  1898.         CHAIN_NEXT
  1899.  
  1900. J_10001110:    *中1/右2/中1/
  1901.         lea    3072+4(a2),a2
  1902.         move.w    d5,-2048-4(a2)
  1903.         move.w    #UpL2,-1024+0(a2)
  1904.         move.w    d5,(a2)
  1905.         CHAIN_NEXT
  1906.  
  1907. J_10001111:    *中1/右2/右1/
  1908.         lea    3072+6(a2),a2
  1909.         move.w    d5,-2048-6(a2)
  1910.         move.w    #UpL2,-1024-2(a2)
  1911.         move.w    #UpL1,(a2)
  1912.         CHAIN_NEXT
  1913.  
  1914. J_1001000x:    *中1/左1/終
  1915.         lea    2048-2(a2),a2
  1916.         move.w    d5,-1024+2(a2)
  1917.         move.w    #UpR1,(a2)
  1918.         CHAIN_EX1
  1919.  
  1920. J_10010010:    *中1/左1/左2/
  1921.         lea    3072-6(a2),a2
  1922.         move.w    d5,-2048+6(a2)
  1923.         move.w    #UpR1,-1024+4(a2)
  1924.         move.w    #UpR2,(a2)
  1925.         CHAIN_NEXT
  1926.  
  1927. J_10010011:    *中1/左1/右2/
  1928.         lea    3072+2(a2),a2
  1929.         move.w    d5,-2048-2(a2)
  1930.         move.w    #UpR1,-1024-4(a2)
  1931.         move.w    #UpL2,(a2)
  1932.         CHAIN_NEXT
  1933.  
  1934. J_10010100:    *中1/左1/左1/00/
  1935.         lea    3072-4(a2),a2
  1936.         move.w    d5,-2048+4(a2)
  1937.         move.w    #UpR1,(a2)
  1938.         move.w    (a2),-1024+2(a2)
  1939.         CHAIN00X
  1940.  
  1941. J_10010101:    *中1/左1/左1/左1/
  1942.         lea    4096-6(a2),a2
  1943.         move.w    d5,-3072+6(a2)
  1944.         addq.w    #2,d5
  1945.         move.w    d5,-2048+4(a2)
  1946.         move.w    d5,-1024+2(a2)
  1947.         move.w    d5,(a2)
  1948.         subq.w    #2,d5
  1949.         CHAIN_NEXT
  1950.  
  1951. J_10010110:    *中1/左1/左1/中1/
  1952.         lea    4096-4(a2),a2
  1953.         move.w    d5,-3072+4(a2)
  1954.         move.w    #UpR1,-2048+2(a2)
  1955.         move.w    #UpR1,-1024+0(a2)
  1956.         move.w    d5,(a2)
  1957.         CHAIN_NEXT
  1958.  
  1959. J_10010111:    *中1/左1/左1/右1/
  1960.         lea    4096-2(a2),a2
  1961.         move.w    d5,-3072+2(a2)
  1962.         move.w    #UpR1,-2048+0(a2)
  1963.         move.w    #UpR1,-1024-2(a2)
  1964.         move.w    #UpL1,(a2)
  1965.         CHAIN_NEXT
  1966.  
  1967. J_10011000:    *中1/左1/中1/00/
  1968.         lea    3072-2(a2),a2
  1969.         move.w    d5,-2048+2(a2)
  1970.         move.w    #UpR1,-1024+0(a2)
  1971.         move.w    d5,(a2)
  1972.         CHAIN00X
  1973.  
  1974. J_10011001:    *中1/左1/中1/左1/
  1975.         lea    4096-4(a2),a2
  1976.         move.w    d5,-3072+4(a2)
  1977.         move.w    #UpR1,(a2)
  1978.         move.w    (a2),-2048+2(a2)
  1979.         move.w    d5,-1024+2(a2)
  1980.         CHAIN_NEXT
  1981.  
  1982. J_10011010:    *中1/左1/中1/中1/
  1983.         lea    4096-2(a2),a2
  1984.         move.w    d5,-3072+2(a2)
  1985.         move.w    #UpR1,-2048+0(a2)
  1986.         move.w    d5,-1024+0(a2)
  1987.         move.w    d5,(a2)
  1988.         CHAIN_NEXT
  1989.  
  1990. J_10011011:    *中1/左1/中1/右1/
  1991.         lea    4096+0(a2),a2
  1992.         move.w    d5,-3072+0(a2)
  1993.         move.w    #UpR1,-2048-2(a2)
  1994.         move.w    d5,-1024-2(a2)
  1995.         move.w    #UpL1,(a2)
  1996.         CHAIN_NEXT
  1997.  
  1998. J_10011100:    *中1/左1/右1/00/
  1999.         lea    3072+0(a2),a2
  2000.         move.w    d5,-2048+0(a2)
  2001.         move.w    #UpR1,-1024-2(a2)
  2002.         move.w    #UpL1,(a2)
  2003.         CHAIN00X
  2004.  
  2005. J_10011101:    *中1/左1/右1/左1/
  2006.         lea    4096-2(a2),a2
  2007.         move.w    d5,-3072+2(a2)
  2008.         move.w    #UpR1,(a2)
  2009.         move.w    (a2),-2048+0(a2)
  2010.         move.w    #UpL1,-1024+2(a2)
  2011.         CHAIN_NEXT
  2012.  
  2013. J_10011110:    *中1/左1/右1/中1/
  2014.         lea    4096+0(a2),a2
  2015.         move.w    d5,-3072+0(a2)
  2016.         move.w    #UpR1,-2048-2(a2)
  2017.         move.w    #UpL1,-1024+0(a2)
  2018.         move.w    d5,(a2)
  2019.         CHAIN_NEXT
  2020.  
  2021. J_10011111:    *中1/左1/右1/右1/
  2022.         lea    4096+2(a2),a2
  2023.         move.w    d5,-3072-2(a2)
  2024.         move.w    #UpR1,-2048-4(a2)
  2025.         move.w    #UpL1,(a2)
  2026.         move.w    (a2),-1024-2(a2)
  2027.         CHAIN_NEXT
  2028.  
  2029. J_1010000x:    *中1/中1/終
  2030.         lea    2048+0(a2),a2
  2031.         move.w    d5,-1024+0(a2)
  2032.         move.w    d5,(a2)
  2033.         CHAIN_EX1
  2034.  
  2035. J_10100010:    *中1/中1/左2/
  2036.         lea    3072-4(a2),a2
  2037.         move.w    d5,-2048+4(a2)
  2038.         move.w    d5,-1024+4(a2)
  2039.         move.w    #UpR2,(a2)
  2040.         CHAIN_NEXT
  2041.  
  2042. J_10100011:    *中1/中1/右2/
  2043.         lea    3072+4(a2),a2
  2044.         move.w    d5,-2048-4(a2)
  2045.         move.w    d5,-1024-4(a2)
  2046.         move.w    #UpL2,(a2)
  2047.         CHAIN_NEXT
  2048.  
  2049. J_10100100:    *中1/中1/左1/00/
  2050.         lea    3072-2(a2),a2
  2051.         move.w    d5,-2048+2(a2)
  2052.         move.w    d5,-1024+2(a2)
  2053.         move.w    #UpR1,(a2)
  2054.         CHAIN00X
  2055.  
  2056. J_10100101:    *中1/中1/左1/左1/
  2057.         lea    4096-4(a2),a2
  2058.         move.w    d5,-3072+4(a2)
  2059.         move.w    d5,-2048+4(a2)
  2060.         move.w    #UpR1,(a2)
  2061.         move.w    (a2),-1024+2(a2)
  2062.         CHAIN_NEXT
  2063.  
  2064. J_10100110:    *中1/中1/左1/中1/
  2065.         lea    4096-2(a2),a2
  2066.         move.w    d5,-3072+2(a2)
  2067.         move.w    d5,-2048+2(a2)
  2068.         move.w    #UpR1,-1024+0(a2)
  2069.         move.w    d5,(a2)
  2070.         CHAIN_NEXT
  2071.  
  2072. J_10100111:    *中1/中1/左1/右1/
  2073.         lea    4096+0(a2),a2
  2074.         move.w    d5,-3072+0(a2)
  2075.         move.w    d5,-2048+0(a2)
  2076.         move.w    #UpR1,-1024-2(a2)
  2077.         move.w    #UpL1,(a2)
  2078.         CHAIN_NEXT
  2079.  
  2080. J_10101000:    *中1/中1/中1/00/
  2081.         lea    3072+0(a2),a2
  2082.         move.w    d5,-2048+0(a2)
  2083.         move.w    d5,-1024+0(a2)
  2084.         move.w    d5,(a2)
  2085.         CHAIN00X
  2086.  
  2087. J_10101001:    *中1/中1/中1/左1/
  2088.         lea    4096-2(a2),a2
  2089.         move.w    d5,-3072+2(a2)
  2090.         move.w    d5,-2048+2(a2)
  2091.         move.w    d5,-1024+2(a2)
  2092.         move.w    #UpR1,(a2)
  2093.         CHAIN_NEXT
  2094.  
  2095. J_10101010:    *中1/中1/中1/中1/
  2096.         lea    4096+0(a2),a2
  2097.         move.w    d5,-3072+0(a2)
  2098.         move.w    d5,-2048+0(a2)
  2099.         move.w    d5,-1024+0(a2)
  2100.         move.w    d5,(a2)
  2101.         CHAIN_NEXT
  2102.  
  2103. J_10101011:    *中1/中1/中1/右1/
  2104.         lea    4096+2(a2),a2
  2105.         move.w    d5,-3072-2(a2)
  2106.         move.w    d5,-2048-2(a2)
  2107.         move.w    d5,-1024-2(a2)
  2108.         move.w    #UpL1,(a2)
  2109.         CHAIN_NEXT
  2110.  
  2111. J_10101100:    *中1/中1/右1/00/
  2112.         lea    3072+2(a2),a2
  2113.         move.w    d5,-2048-2(a2)
  2114.         move.w    d5,-1024-2(a2)
  2115.         move.w    #UpL1,(a2)
  2116.         CHAIN00X
  2117.  
  2118. J_10101101:    *中1/中1/右1/左1/
  2119.         lea    4096+0(a2),a2
  2120.         move.w    d5,-3072+0(a2)
  2121.         move.w    d5,-2048+0(a2)
  2122.         move.w    #UpL1,-1024+2(a2)
  2123.         move.w    #UpR1,(a2)
  2124.         CHAIN_NEXT
  2125.  
  2126. J_10101110:    *中1/中1/右1/中1/
  2127.         lea    4096+2(a2),a2
  2128.         move.w    d5,-3072-2(a2)
  2129.         move.w    d5,-2048-2(a2)
  2130.         move.w    #UpL1,-1024+0(a2)
  2131.         move.w    d5,(a2)
  2132.         CHAIN_NEXT
  2133.  
  2134. J_10101111:    *中1/中1/右1/右1/
  2135.         lea    4096+4(a2),a2
  2136.         move.w    d5,-3072-4(a2)
  2137.         move.w    d5,-2048-4(a2)
  2138.         move.w    #UpL1,(a2)
  2139.         move.w    (a2),-1024-2(a2)
  2140.         CHAIN_NEXT
  2141.  
  2142. J_1011000x:    *中1/右1/終
  2143.         lea    2048+2(a2),a2
  2144.         move.w    d5,-1024-2(a2)
  2145.         move.w    #UpL1,(a2)
  2146.         CHAIN_EX1
  2147.  
  2148. J_10110010:    *中1/右1/左2/
  2149.         lea    3072-2(a2),a2
  2150.         move.w    d5,-2048+2(a2)
  2151.         move.w    #UpL1,-1024+4(a2)
  2152.         move.w    #UpR2,(a2)
  2153.         CHAIN_NEXT
  2154.  
  2155. J_10110011:    *中1/右1/右2/
  2156.         lea    3072+6(a2),a2
  2157.         move.w    d5,-2048-6(a2)
  2158.         move.w    #UpL1,-1024-4(a2)
  2159.         move.w    #UpL2,(a2)
  2160.         CHAIN_NEXT
  2161.  
  2162. J_10110100:    *中1/右1/左1/00/
  2163.         lea    3072+0(a2),a2
  2164.         move.w    d5,-2048+0(a2)
  2165.         move.w    #UpL1,-1024+2(a2)
  2166.         move.w    #UpR1,(a2)
  2167.         CHAIN00X
  2168.  
  2169. J_10110101:    *中1/右1/左1/左1/
  2170.         lea    4096-2(a2),a2
  2171.         move.w    d5,-3072+2(a2)
  2172.         move.w    #UpL1,-2048+4(a2)
  2173.         move.w    #UpR1,(a2)
  2174.         move.w    (a2),-1024+2(a2)
  2175.         CHAIN_NEXT
  2176.  
  2177. J_10110110:    *中1/右1/左1/中1/
  2178.         lea    4096+0(a2),a2
  2179.         move.w    d5,-3072+0(a2)
  2180.         move.w    #UpL1,-2048+2(a2)
  2181.         move.w    #UpR1,-1024+0(a2)
  2182.         move.w    d5,(a2)
  2183.         CHAIN_NEXT
  2184.  
  2185. J_10110111:    *中1/右1/左1/右1/
  2186.         lea    4096+2(a2),a2
  2187.         move.w    d5,-3072-2(a2)
  2188.         move.w    #UpL1,(a2)
  2189.         move.w    (a2),-2048+0(a2)
  2190.         move.w    #UpR1,-1024-2(a2)
  2191.         CHAIN_NEXT
  2192.  
  2193. J_10111000:    *中1/右1/中1/00/
  2194.         lea    3072+2(a2),a2
  2195.         move.w    d5,-2048-2(a2)
  2196.         move.w    #UpL1,-1024+0(a2)
  2197.         move.w    d5,(a2)
  2198.         CHAIN00X
  2199.  
  2200. J_10111001:    *中1/右1/中1/左1/
  2201.         lea    4096+0(a2),a2
  2202.         move.w    d5,-3072+0(a2)
  2203.         move.w    #UpL1,-2048+2(a2)
  2204.         move.w    d5,-1024+2(a2)
  2205.         move.w    #UpR1,(a2)
  2206.         CHAIN_NEXT
  2207.  
  2208. J_10111010:    *中1/右1/中1/中1/
  2209.         lea    4096+2(a2),a2
  2210.         move.w    d5,-3072-2(a2)
  2211.         move.w    #UpL1,-2048+0(a2)
  2212.         move.w    d5,-1024+0(a2)
  2213.         move.w    d5,(a2)
  2214.         CHAIN_NEXT
  2215.  
  2216. J_10111011:    *中1/右1/中1/右1/
  2217.         lea    4096+4(a2),a2
  2218.         move.w    d5,-3072-4(a2)
  2219.         move.w    #UpL1,(a2)
  2220.         move.w    (a2),-2048-2(a2)
  2221.         move.w    d5,-1024-2(a2)
  2222.         CHAIN_NEXT
  2223.  
  2224. J_10111100:    *中1/右1/右1/00/
  2225.         lea    3072+4(a2),a2
  2226.         move.w    d5,-2048-4(a2)
  2227.         move.w    #UpL1,(a2)
  2228.         move.w    (a2),-1024-2(a2)
  2229.         CHAIN00X
  2230.  
  2231. J_10111101:    *中1/右1/右1/左1/
  2232.         lea    4096+2(a2),a2
  2233.         move.w    d5,-3072-2(a2)
  2234.         move.w    #UpL1,-2048+0(a2)
  2235.         move.w    #UpL1,-1024+2(a2)
  2236.         move.w    #UpR1,(a2)
  2237.         CHAIN_NEXT
  2238.  
  2239. J_10111110:    *中1/右1/右1/中1/
  2240.         lea    4096+4(a2),a2
  2241.         move.w    d5,-3072-4(a2)
  2242.         move.w    #UpL1,-2048-2(a2)
  2243.         move.w    #UpL1,-1024+0(a2)
  2244.         move.w    d5,(a2)
  2245.         CHAIN_NEXT
  2246.  
  2247. J_10111111:    *中1/右1/右1/右1/
  2248.         lea    4096+6(a2),a2
  2249.         move.w    d5,-3072-6(a2)
  2250.         subq.w    #2,d5
  2251.         move.w    d5,-2048-4(a2)
  2252.         move.w    d5,-1024-2(a2)
  2253.         move.w    d5,(a2)
  2254.         addq.w    #2,d5
  2255.         CHAIN_NEXT
  2256.  
  2257. J_11000xxx:    *右1/終
  2258.         lea    1024+2(a2),a2
  2259.         move.w    #UpL1,(a2)
  2260.         CHAIN_EX3
  2261.  
  2262. J_11001000:    *右1/左2/00/
  2263.         lea    2048-2(a2),a2
  2264.         move.w    #UpL1,-1024+4(a2)
  2265.         move.w    #UpR2,(a2)
  2266.         CHAIN00X
  2267.  
  2268. J_11001001:    *右1/左2/左1/
  2269.         lea    3072-4(a2),a2
  2270.         move.w    #UpL1,-2048+6(a2)
  2271.         move.w    #UpR2,-1024+2(a2)
  2272.         move.w    #UpR1,(a2)
  2273.         CHAIN_NEXT
  2274.  
  2275. J_11001010:    *右1/左2/中1/
  2276.         lea    3072-2(a2),a2
  2277.         move.w    #UpL1,-2048+4(a2)
  2278.         move.w    #UpR2,-1024+0(a2)
  2279.         move.w    d5,(a2)
  2280.         CHAIN_NEXT
  2281.  
  2282. J_11001011:    *右1/左2/右1/
  2283.         lea    3072+0(a2),a2
  2284.         move.w    #UpL1,(a2)
  2285.         move.w    (a2),-2048+2(a2)
  2286.         move.w    #UpR2,-1024-2(a2)
  2287.         CHAIN_NEXT
  2288.  
  2289. J_11001100:    *右1/右2/00/
  2290.         lea    2048+6(a2),a2
  2291.         move.w    #UpL1,-1024-4(a2)
  2292.         move.w    #UpL2,(a2)
  2293.         CHAIN00X
  2294.  
  2295. J_11001101:    *右1/右2/左1/
  2296.         lea    3072+4(a2),a2
  2297.         move.w    #UpL1,-2048-2(a2)
  2298.         move.w    #UpL2,-1024+2(a2)
  2299.         move.w    #UpR1,(a2)
  2300.         CHAIN_NEXT
  2301.  
  2302. J_11001110:    *右1/右2/中1/
  2303.         lea    3072+6(a2),a2
  2304.         move.w    #UpL1,-2048-4(a2)
  2305.         move.w    #UpL2,-1024+0(a2)
  2306.         move.w    d5,(a2)
  2307.         CHAIN_NEXT
  2308.  
  2309. J_11001111:    *右1/右2/右1/
  2310.         lea    3072+8(a2),a2
  2311.         move.w    #UpL1,(a2)
  2312.         move.w    (a2),-2048-6(a2)
  2313.         move.w    #UpL2,-1024-2(a2)
  2314.         CHAIN_NEXT
  2315.  
  2316. J_1101000x:    *右1/左1/終
  2317.         lea    2048+0(a2),a2
  2318.         move.w    #UpL1,-1024+2(a2)
  2319.         move.w    #UpR1,(a2)
  2320.         CHAIN_EX1
  2321.  
  2322. J_11010010:    *右1/左1/左2/
  2323.         lea    3072-4(a2),a2
  2324.         move.w    #UpL1,-2048+6(a2)
  2325.         move.w    #UpR1,-1024+4(a2)
  2326.         move.w    #UpR2,(a2)
  2327.         CHAIN_NEXT
  2328.  
  2329. J_11010011:    *右1/左1/右2/
  2330.         lea    3072+4(a2),a2
  2331.         move.w    #UpL1,-2048-2(a2)
  2332.         move.w    #UpR1,-1024-4(a2)
  2333.         move.w    #UpL2,(a2)
  2334.         CHAIN_NEXT
  2335.  
  2336. J_11010100:    *右1/左1/左1/00/
  2337.         lea    3072-2(a2),a2
  2338.         move.w    #UpL1,-2048+4(a2)
  2339.         move.w    #UpR1,(a2)
  2340.         move.w    (a2),-1024+2(a2)
  2341.         CHAIN00X
  2342.  
  2343. J_11010101:    *右1/左1/左1/左1/
  2344.         lea    4096-4(a2),a2
  2345.         move.w    #UpL1,-3072+6(a2)
  2346.         addq.w    #2,d5
  2347.         move.w    d5,-2048+4(a2)
  2348.         move.w    d5,-1024+2(a2)
  2349.         move.w    d5,(a2)
  2350.         subq.w    #2,d5
  2351.         CHAIN_NEXT
  2352.  
  2353. J_11010110:    *右1/左1/左1/中1/
  2354.         lea    4096-2(a2),a2
  2355.         move.w    #UpL1,-3072+4(a2)
  2356.         move.w    #UpR1,-2048+2(a2)
  2357.         move.w    #UpR1,-1024+0(a2)
  2358.         move.w    d5,(a2)
  2359.         CHAIN_NEXT
  2360.  
  2361. J_11010111:    *右1/左1/左1/右1/
  2362.         lea    4096+0(a2),a2
  2363.         subq.w    #2,d5
  2364.         move.w    d5,-3072+2(a2)
  2365.         move.w    d5,(a2)
  2366.         addq.w    #4,d5
  2367.         move.w    d5,-2048+0(a2)
  2368.         move.w    d5,-1024-2(a2)
  2369.         subq.w    #2,d5
  2370.         CHAIN_NEXT
  2371.  
  2372. J_11011000:    *右1/左1/中1/00/
  2373.         lea    3072+0(a2),a2
  2374.         move.w    #UpL1,-2048+2(a2)
  2375.         move.w    #UpR1,-1024+0(a2)
  2376.         move.w    d5,(a2)
  2377.         CHAIN00X
  2378.  
  2379. J_11011001:    *右1/左1/中1/左1/
  2380.         lea    4096-2(a2),a2
  2381.         move.w    #UpL1,-3072+4(a2)
  2382.         move.w    #UpR1,(a2)
  2383.         move.w    (a2),-2048+2(a2)
  2384.         move.w    d5,-1024+2(a2)
  2385.         CHAIN_NEXT
  2386.  
  2387. J_11011010:    *右1/左1/中1/中1/
  2388.         lea    4096+0(a2),a2
  2389.         move.w    #UpL1,-3072+2(a2)
  2390.         move.w    #UpR1,-2048+0(a2)
  2391.         move.w    d5,-1024+0(a2)
  2392.         move.w    d5,(a2)
  2393.         CHAIN_NEXT
  2394.  
  2395. J_11011011:    *右1/左1/中1/右1/
  2396.         lea    4096+2(a2),a2
  2397.         move.w    #UpL1,(a2)
  2398.         move.w    (a2),-3072+0(a2)
  2399.         move.w    #UpR1,-2048-2(a2)
  2400.         move.w    d5,-1024-2(a2)
  2401.         CHAIN_NEXT
  2402.  
  2403. J_11011100:    *右1/左1/右1/00/
  2404.         lea    3072+2(a2),a2
  2405.         move.w    #UpL1,(a2)
  2406.         move.w    (a2),-2048+0(a2)
  2407.         move.w    #UpR1,-1024-2(a2)
  2408.         CHAIN00X
  2409.  
  2410. J_11011101:    *右1/左1/右1/左1/
  2411.         lea    4096+0(a2),a2
  2412.         subq.w    #2,d5
  2413.         move.w    d5,-3072+2(a2)
  2414.         move.w    d5,-1024+2(a2)
  2415.         addq.w    #4,d5
  2416.         move.w    d5,-2048+0(a2)
  2417.         move.w    d5,(a2)
  2418.         subq.w    #2,d5
  2419.         CHAIN_NEXT
  2420.  
  2421. J_11011110:    *右1/左1/右1/中1/
  2422.         lea    4096+2(a2),a2
  2423.         move.w    #UpL1,-3072+0(a2)
  2424.         move.w    #UpR1,-2048-2(a2)
  2425.         move.w    #UpL1,-1024+0(a2)
  2426.         move.w    d5,(a2)
  2427.         CHAIN_NEXT
  2428.  
  2429. J_11011111:    *右1/左1/右1/右1/
  2430.         lea    4096+4(a2),a2
  2431.         subq.w    #2,d5
  2432.         move.w    d5,-3072-2(a2)
  2433.         move.w    d5,-1024-2(a2)
  2434.         move.w    d5,(a2)
  2435.         addq.w    #2,d5
  2436.         move.w    #UpR1,-2048-4(a2)
  2437.         CHAIN_NEXT
  2438.  
  2439. J_1110000x:    *右1/中1/終
  2440.         lea    2048+2(a2),a2
  2441.         move.w    #UpL1,-1024+0(a2)
  2442.         move.w    d5,(a2)
  2443.         CHAIN_EX1
  2444.  
  2445. J_11100010:    *右1/中1/左2/
  2446.         lea    3072-2(a2),a2
  2447.         move.w    #UpL1,-2048+4(a2)
  2448.         move.w    d5,-1024+4(a2)
  2449.         move.w    #UpR2,(a2)
  2450.         CHAIN_NEXT
  2451.  
  2452. J_11100011:    *右1/中1/右2/
  2453.         lea    3072+6(a2),a2
  2454.         move.w    #UpL1,-2048-4(a2)
  2455.         move.w    d5,-1024-4(a2)
  2456.         move.w    #UpL2,(a2)
  2457.         CHAIN_NEXT
  2458.  
  2459. J_11100100:    *右1/中1/左1/00/
  2460.         lea    3072+0(a2),a2
  2461.         move.w    #UpL1,-2048+2(a2)
  2462.         move.w    d5,-1024+2(a2)
  2463.         move.w    #UpR1,(a2)
  2464.         CHAIN00X
  2465.  
  2466. J_11100101:    *右1/中1/左1/左1/
  2467.         lea    4096-2(a2),a2
  2468.         move.w    #UpL1,-3072+4(a2)
  2469.         move.w    d5,-2048+4(a2)
  2470.         move.w    #UpR1,(a2)
  2471.         move.w    (a2),-1024+2(a2)
  2472.         CHAIN_NEXT
  2473.  
  2474. J_11100110:    *右1/中1/左1/中1/
  2475.         lea    4096+0(a2),a2
  2476.         move.w    #UpL1,-3072+2(a2)
  2477.         move.w    d5,-2048+2(a2)
  2478.         move.w    #UpR1,-1024+0(a2)
  2479.         move.w    d5,(a2)
  2480.         CHAIN_NEXT
  2481.  
  2482. J_11100111:    *右1/中1/左1/右1/
  2483.         lea    4096+2(a2),a2
  2484.         move.w    #UpL1,(a2)
  2485.         move.w    (a2),-3072+0(a2)
  2486.         move.w    d5,-2048+0(a2)
  2487.         move.w    #UpR1,-1024-2(a2)
  2488.         CHAIN_NEXT
  2489.  
  2490. J_11101000:    *右1/中1/中1/00/
  2491.         lea    3072+2(a2),a2
  2492.         move.w    #UpL1,-2048+0(a2)
  2493.         move.w    d5,-1024+0(a2)
  2494.         move.w    d5,(a2)
  2495.         CHAIN00X
  2496.  
  2497. J_11101001:    *右1/中1/中1/左1/
  2498.         lea    4096+0(a2),a2
  2499.         move.w    #UpL1,-3072+2(a2)
  2500.         move.w    d5,-2048+2(a2)
  2501.         move.w    d5,-1024+2(a2)
  2502.         move.w    #UpR1,(a2)
  2503.         CHAIN_NEXT
  2504.  
  2505. J_11101010:    *右1/中1/中1/中1/
  2506.         lea    4096+2(a2),a2
  2507.         move.w    #UpL1,-3072+0(a2)
  2508.         move.w    d5,-2048+0(a2)
  2509.         move.w    d5,-1024+0(a2)
  2510.         move.w    d5,(a2)
  2511.         CHAIN_NEXT
  2512.  
  2513. J_11101011:    *右1/中1/中1/右1/
  2514.         lea    4096+4(a2),a2
  2515.         move.w    #UpL1,(a2)
  2516.         move.w    (a2),-3072-2(a2)
  2517.         move.w    d5,-2048-2(a2)
  2518.         move.w    d5,-1024-2(a2)
  2519.         CHAIN_NEXT
  2520.  
  2521. J_11101100:    *右1/中1/右1/00/
  2522.         lea    3072+4(a2),a2
  2523.         move.w    #UpL1,(a2)
  2524.         move.w    (a2),-2048-2(a2)
  2525.         move.w    d5,-1024-2(a2)
  2526.         CHAIN00X
  2527.  
  2528. J_11101101:    *右1/中1/右1/左1/
  2529.         lea    4096+2(a2),a2
  2530.         move.w    #UpL1,-3072+0(a2)
  2531.         move.w    d5,-2048+0(a2)
  2532.         move.w    #UpL1,-1024+2(a2)
  2533.         move.w    #UpR1,(a2)
  2534.         CHAIN_NEXT
  2535.  
  2536. J_11101110:    *右1/中1/右1/中1/
  2537.         lea    4096+4(a2),a2
  2538.         move.w    #UpL1,-3072-2(a2)
  2539.         move.w    d5,-2048-2(a2)
  2540.         move.w    #UpL1,-1024+0(a2)
  2541.         move.w    d5,(a2)
  2542.         CHAIN_NEXT
  2543.  
  2544. J_11101111:    *右1/中1/右1/右1/
  2545.         lea    4096+6(a2),a2
  2546.         subq.w    #2,d5
  2547.         move.w    d5,-3072-4(a2)
  2548.         move.w    d5,-1024-2(a2)
  2549.         move.w    d5,(a2)
  2550.         addq.w    #2,d5
  2551.         move.w    d5,-2048-4(a2)
  2552.         CHAIN_NEXT
  2553.  
  2554. J_1111000x:    *右1/右1/終
  2555.         lea    2048+4(a2),a2
  2556.         move.w    #UpL1,(a2)
  2557.         move.w    (a2),-1024-2(a2)
  2558.         CHAIN_EX1
  2559.  
  2560. J_11110010:    *右1/右1/左2/
  2561.         lea    3072+0(a2),a2
  2562.         move.w    #UpL1,-2048+2(a2)
  2563.         move.w    #UpL1,-1024+4(a2)
  2564.         move.w    #UpR2,(a2)
  2565.         CHAIN_NEXT
  2566.  
  2567. J_11110011:    *右1/右1/右2/
  2568.         lea    3072+8(a2),a2
  2569.         move.w    #UpL1,-2048-6(a2)
  2570.         move.w    #UpL1,-1024-4(a2)
  2571.         move.w    #UpL2,(a2)
  2572.         CHAIN_NEXT
  2573.  
  2574. J_11110100:    *右1/右1/左1/00/
  2575.         lea    3072+2(a2),a2
  2576.         move.w    #UpL1,-2048+0(a2)
  2577.         move.w    #UpL1,-1024+2(a2)
  2578.         move.w    #UpR1,(a2)
  2579.         CHAIN00X
  2580.  
  2581. J_11110101:    *右1/右1/左1/左1/
  2582.         lea    4096+0(a2),a2
  2583.         subq.w    #2,d5
  2584.         move.w    d5,-3072+2(a2)
  2585.         move.w    d5,-2048+4(a2)
  2586.         addq.w    #4,d5
  2587.         move.w    d5,-1024+2(a2)
  2588.         move.w    d5,(a2)
  2589.         subq.w    #2,d5
  2590.         CHAIN_NEXT
  2591.  
  2592. J_11110110:    *右1/右1/左1/中1/
  2593.         lea    4096+2(a2),a2
  2594.         move.w    #UpL1,-3072+0(a2)
  2595.         move.w    #UpL1,-2048+2(a2)
  2596.         move.w    #UpR1,-1024+0(a2)
  2597.         move.w    d5,(a2)
  2598.         CHAIN_NEXT
  2599.  
  2600. J_11110111:    *右1/右1/左1/右1/
  2601.         lea    4096+4(a2),a2
  2602.         subq.w    #2,d5
  2603.         move.w    d5,-3072-2(a2)
  2604.         move.w    d5,-2048+0(a2)
  2605.         move.w    d5,(a2)
  2606.         addq.w    #2,d5
  2607.         move.w    #UpR1,-1024-2(a2)
  2608.         CHAIN_NEXT
  2609.  
  2610. J_11111000:    *右1/右1/中1/00/
  2611.         lea    3072+4(a2),a2
  2612.         move.w    #UpL1,-2048-2(a2)
  2613.         move.w    #UpL1,-1024+0(a2)
  2614.         move.w    d5,(a2)
  2615.         CHAIN00X
  2616.  
  2617. J_11111001:    *右1/右1/中1/左1/
  2618.         lea    4096+2(a2),a2
  2619.         move.w    #UpL1,-3072+0(a2)
  2620.         move.w    #UpL1,-2048+2(a2)
  2621.         move.w    d5,-1024+2(a2)
  2622.         move.w    #UpR1,(a2)
  2623.         CHAIN_NEXT
  2624.  
  2625. J_11111010:    *右1/右1/中1/中1/
  2626.         lea    4096+4(a2),a2
  2627.         move.w    #UpL1,-3072-2(a2)
  2628.         move.w    #UpL1,-2048+0(a2)
  2629.         move.w    d5,-1024+0(a2)
  2630.         move.w    d5,(a2)
  2631.         CHAIN_NEXT
  2632.  
  2633. J_11111011:    *右1/右1/中1/右1/
  2634.         lea    4096+6(a2),a2
  2635.         subq.w    #2,d5
  2636.         move.w    d5,-3072-4(a2)
  2637.         move.w    d5,-2048-2(a2)
  2638.         move.w    d5,(a2)
  2639.         addq.w    #2,d5
  2640.         move.w    d5,-1024-2(a2)
  2641.         CHAIN_NEXT
  2642.  
  2643. J_11111100:    *右1/右1/右1/00/
  2644.         lea    3072+6(a2),a2
  2645.         subq.w    #2,d5
  2646.         move.w    d5,-2048-4(a2)
  2647.         move.w    d5,-1024-2(a2)
  2648.         move.w    d5,(a2)
  2649.         addq.w    #2,d5
  2650.         CHAIN00X
  2651.  
  2652. J_11111101:    *右1/右1/右1/左1/
  2653.         lea    4096+4(a2),a2
  2654.         subq.w    #2,d5
  2655.         move.w    d5,-3072-2(a2)
  2656.         move.w    d5,-2048+0(a2)
  2657.         move.w    d5,-1024+2(a2)
  2658.         addq.w    #2,d5
  2659.         move.w    #UpR1,(a2)
  2660.         CHAIN_NEXT
  2661.  
  2662. J_11111110:    *右1/右1/右1/中1/
  2663.         lea    4096+6(a2),a2
  2664.         subq.w    #2,d5
  2665.         move.w    d5,-3072-4(a2)
  2666.         move.w    d5,-2048-2(a2)
  2667.         move.w    d5,-1024+0(a2)
  2668.         addq.w    #2,d5
  2669.         move.w    d5,(a2)
  2670.         CHAIN_NEXT
  2671.  
  2672. J_11111111:    *右1/右1/右1/右1/
  2673.         lea    4096+8(a2),a2
  2674.         subq.w    #2,d5
  2675.         move.w    d5,-3072-6(a2)
  2676.         move.w    d5,-2048-4(a2)
  2677.         move.w    d5,-1024-2(a2)
  2678.         move.w    d5,(a2)
  2679.         addq.w    #2,d5
  2680.         CHAIN_NEXT
  2681.